Numpy数组的创建
创建Numpy数组可通过多种途径。
例如,你可以通过常规Python list来创建,也可以借助坐标与值的关系函数来创建。创建过程中数据类型不会发生改变。
import numpy as np
a = np.array([2,3,4])
print(a)
'''
array([2, 3, 4])
'''
print(a.dtype) #dtype('int64')
b = np.array([1.2, 3.5, 5.1])
print(b.dtype) #dtype('float64')
最常发生的错误是创建数组时输入的参数忘了加方括号。
a = np.array(1,2,3,4) # 错误
a = np.array([1,2,3,4]) # 正确
数组会将序列的序列转化为二维数组,会将序列的序列的序列转化为三维数组,以此类推。
b = np.array([(1.5,2,3), (4,5,6)])
print(b)
'''
array([[ 1.5, 2. , 3. ],
[ 4. , 5. , 6. ]])
'''
数组元素的类型可以在数组创建时显式定义。
c=np.array([[1,2],[3,4]],dtype=complex)
print(c)
'''
array([[ 1.+0.j, 2.+0.j],
[ 3.+0.j, 4.+0.j]])
'''
通常情况下,数组元素的类型是未知的,但包含的元素数量是已知的。因此,Numpy提供了通过指定数组形状创建数组的方法。zeros函数创建的数组的元素都是0,ones函数创建的数组的元素都是1,empty函数创建的数组的元素都极大或极小或为0,默认状态下,创建的数组的元素类型是float64
print(np.zeros( (3,4)))
'''
array([[ 0., 0., 0., 0.],
[ 0., 0., 0., 0.],
[ 0., 0., 0., 0.]])
'''
print(np.ones((2,3,4),dtype=np.int16))
'''
array([[[ 1, 1, 1, 1],
[ 1, 1, 1, 1],
[ 1, 1, 1, 1]],
[[ 1, 1, 1, 1],
[ 1, 1, 1, 1],
[ 1, 1, 1, 1]]], dtype=int16)
'''
print(np.empty((2,3))) #输出是随机的,例如:
'''
array([[ 3.73603959e-262, 6.02658058e-154, 6.55490914e-260],
[ 5.30498948e-313, 3.14673309e-307, 1.00000000e+000]])
'''
Numpy可以通过arange函数直接创建等差序列数组,3个参数分别表示首值、上界、间隔值
print(np.arange(10, 30, 5)) #array([10, 15, 20, 25])
print(np.arange(0,2,0.3)) #array([0.,0.3,0.6,0.9,1.2,1.5,1.8])
如果不知道间隔值但知道等差数组元素个数,可以使用linspace,3个参数分别为首值、末值、个数。
from numpy import pi
print(np.linspace(0,2,9)) #array([0.,0.25,0.5,0.75,1.,1.25,1.5,1.75,2.])