python画⽴体地球_Python绘制常见图形!/usr/bin/python
-- coding:utf-8 --
import numpy as np
import matplotlib as mpl
from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm
import time
from scipy.optimize import leastsq
from scipy import stats
import scipy.optimize as opt
import scipy
import matplotlib.pyplot as plt
from scipy.stats import norm, poisson
from scipy.interpolate import BarycentricInterpolator
from scipy.interpolate import CubicSpline
import math
import seaborn
def residual(t, x, y):
return y - (t[0] * x ** 2 + t[1] * x + t[2])
def residual2(t, x, y):
print(t[0], t[1])
return y - t[0]np.sin(t[1]x)
x ** x x > 0
(-x) ** (-x) x < 0
def f(x):
y = np.ones_like(x)
i = x > 0
y[i] = np.power(x[i], x[i])
i = x < 0
y[i] = np.power(-x[i], -x[i])
return y
if name == "main":
# # 开场⽩:
# numpy是⾮常好⽤的数据包,如:可以这样得到这个⼆维数组
# [[ 0 1 2 3 4 5]
# [10 11 12 13 14 15]
# [20 21 22 23 24 25]
# [30 31 32 33 34 35]
# [40 41 42 43 44 45]
# [50 51 52 53 54 55]]
# a = np.arange(0, 60, 10).reshape((-1, 1)) + np.arange(6)
# print a
# 正式开始 -:)
# 标准Python的列表(list)中,元素本质是对象。
# 如:L = [1, 2, 3],需要3个指针和三个整数对象,对于数值运算⽐较浪费内存和CPU。
# 因此,Numpy提供了ndarray(N-dimensional array object)对象:存储单⼀数据类型的多维数组。
# # 1.使⽤array创建
# 通过array函数传递list对象
# L = [1, 2, 3, 4, 5, 6]
# print("L = ", L)
# a = np.array(L)
# print("a = ", a)
# print(type(a))
# # # 若传递的是多层嵌套的list,将创建多维数组
# b = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])
# print(b)
# # #
# # # # 数组⼤⼩可以通过其shape属性获得
# print(a.shape)
# print(b.shape)
# # #
# # # 也可以强制修改shape
# b.shape = 4, 3
# print(b)
# # # # 注:从(3,4)改为(4,3)并不是对数组进⾏转置,⽽只是改变每个轴的⼤⼩,数组元素在内存中的位置并没有改变# # #
# # # 当某个轴为-1时,将根据数组元素的个数⾃动计算此轴的长度
# b.shape = 2, -1
# print(b)
# print(b.shape)
# # #
# b.shape = 3, 4
# # # 使⽤reshape⽅法,可以创建改变了尺⼨的新数组,原数组的shape保持不变# c = b.reshape((4, -1))
# print("b = \n", b
# print('c = \n', c)
# #
# # # 数组b和c共享内存,修改任意⼀个将影响另外⼀个
# b[0][1] = 20
# print("b = \n", b)
# print("c = \n", c)
# # #
# # # 数组的元素类型可以通过dtype属性获得
# print(a.dtype)
# print(b.dtype)
# # #
# # # # 可以通过dtype参数在创建时指定元素类型
# d = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]], dtype=np.float)
# f = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]], dtype=npplex) # print(d)
# print(f)
# # #
# # # 如果更改元素类型,可以使⽤astype安全的转换
# f = d.astype(np.int)
# print(f)
# #
# # # 但不要强制仅修改元素类型,如下⾯这句,将会以int来解释单精度float类型# d.dtype = np.int
# print(d)
#
# 2.使⽤函数创建
# 如果⽣成⼀定规则的数据,可以使⽤NumPy提供的专门函数
# arange函数类似于python的range函数:指定起始值、终⽌值和步长来创建数组
# 和Python的range类似,arange同样不包括终值;但arange可以⽣成浮点类型,⽽range只能是整数类型# a = np.arange(1, 10, 0.5)
# print(a)
# # #
# # # linspace函数通过指定起始值、终⽌值和元素个数来创建数组,缺省包括终⽌值
# b = np.linspace(1, 10, 10)
# print('b = ', b)
# # #
# # 可以通过endpoint关键字指定是否包括终值
# c = np.linspace(1, 10, 10, endpoint=False)
# print('c = ', c)
# # #
# # 和linspace类似,logspace可以创建等⽐数列
# # 下⾯函数创建起始值为10^1,终⽌值为10^2,有20个数的等⽐数列
# d = np.logspace(1, 2, 10, endpoint=True)
# print(d)
# # #
# # # 下⾯创建起始值为2^0,终⽌值为2^10(包括),有10个数的等⽐数列
# f = np.logspace(0, 10, 11, endpoint=True, base=2)
# print(f)
# # #
# # # 使⽤ frombuffer, fromstring, fromfile等函数可以从字节序列创建数组
# s = 'abcd'
# g = np.fromstring(s, dtype=np.int8)
# print(g)
# #
# 3.存取
# 3.1常规办法:数组元素的存取⽅法和Python的标准⽅法相同
# a = np.arange(10)
# print(a)
# # # 获取某个元素
# print(a[3])
# # # # 切⽚[3,6),左闭右开
# print(a[3:6])
# # # # 省略开始下标,表⽰从0开始
# print(a[:5])
# # # # 下标为负表⽰从后向前数
# print(a[3:])
# # # # 步长为2
# print(a[1:9:2])
# # # # 步长为-1,即翻转
# print(a[::-1])
# # # # 切⽚数据是原数组的⼀个视图,与原数组共享内容空间,可以直接修改元素值
# a[1:4] = 10, 20, 30
# print(a)
# # # # 因此,在实践中,切实注意原始数据是否被破坏,如:
# b = a[2:5]
# b[0] = 200
# print(a)
#
# # 3.2 整数/布尔数组存取
# # 3.2.1
# 根据整数数组存取:当使⽤整数序列对数组元素进⾏存取时,
# 将使⽤整数序列中的每个元素作为下标,整数序列可以是列表(list)或者数组(ndarray)。# 使⽤整数序列作为下标获得的数组不和原始数组共享数据空间。
linspace numpy# a = np.logspace(0, 9, 10, base=2)
# print(a)
# i = np.arange(0, 10, 2)
# print i
# # # # 利⽤i取a中的元素
# b = a[i]
# print b
# # # b的元素更改,a中元素不受影响
# b[2] = 1.6
# print b
# print a
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论