Numpy初级
Numpy数组属性
Numpy数组的维数成为秩(rank),即轴的数量,一维数组的秩为1…。在Numpy中,每一个线性的数组称为是一个轴(axis),也就是维度,例如:二维数组相当于是两个一维数组。通俗的讲就是一个ndarray对象有几个"[" 或者"]"
这个数组就是几维。如[[1,2,3]]
表示一个二维数组。
一个ndarray对象通常有以下几个属性:
ndarray.ndim
:数组维度的大小。
ndarray.shape
:数组的形状。
ndarray.size
:数组元素的总个数。
ndarray.dtype
:ndarray对象的元素类型。
ndarray.itemsize
:ndarray对象中每个元素的大小。
ndarray.flags
:ndarray对象的内存信息。
ndarray.real
:数组元素的实部。
ndarray.imag
:数组元素的虚部
常见属性的使用代码如下:
import numpy as np
# 创建一个adarray对象
ns = np.array([[1,2,3,4,5]])
print("数组为:",ns)
print("数组的维度为:",ns.ndim)
print("数组的形状:",ns.shape)
print("数组元素的个数",ns.size)
print("数组中每一个元素的大小:",ns.itemsize)
print("数组中元素的数据类型:",ns.dtype)
结果如下:
Numpy的routines函数
-
numpy.zeros(shape,dtype)
:创建指定大小的数组,数组元素以0来填充。>>>shape
表示数组的形状,dtype
表示数组的数据类型。 -
numpy.zeros_like(arr,dtype,shape)
:创建一个与给定数组具有相同形状的数组,数组元素以0来填充。>>>arr
表示给定的需要创建相同形状的数组,dtype
表示数据类型,shape
表示创建的数组的形状,如果不指定,则默认为arr数组的形状。 -
numpy.ones(shape,dtype)
:创建指定大小的数组,数组元素以1来填充。>>>shape
表示数组的形状,dtype
表示数组的数据类型。 -
numpy.ones_like()
:创建一个与给定数组具有相同形状的数组,数组元素以1来填充。>>>arr
表示给定的需要创建相同形状的数组,dtype
表示数据类型,shape
表示创建的数组的形状,如果不指定,则默认为arr数组的形状。 -
numpy.full(shape, fill_value, dtype)
:创建指定大小的数组,数组的元素通过指定的值进行填充。>>>shape
表示创建的数组的形状,fill_value
表示数组中要填充的值,dtype
表示数据类型。
代码如下:
import numpy as np
# 创建一个3行四列的数组,元素全部为0
a0 = np.zeros(shape=(3,4),dtype=int)
display(a0)
# 创建一个三行四列的数组,元素全部为1
a1 = np.ones(shape=(3,4),dtype=np.int32)
display(a1)
# 创建一个三行四列的数组,元素全部为2
a2 = np.full(shape=(3,4),fill_value=2)
display(a2)
结果如下:
numpy.eye(N, M=None, k=0, dtype)
:创建斜对角线为1的数组。>>>N
表示创建数组的行,M
表示数组的列,默认为N,即如果只写了一个数,创建的数组为方阵。k表示斜对角的偏移,为正数向上偏移,为负数向下偏移,dtype表示数据类型。
代码如下:
import numpy as np
# 斜对角线为1的方阵
e0 = np.eye(3)
display(e0)
# 创建斜对角线,向上移动1
e1 = np.eye(3,k=1)
display(e1)
结果如下:
-
numpy.linspace(start,stop,num=50,endpoint=True,retstep=False,dtype=None)
:创建一个等差数列。>>>start
表示起始值,stop
表示结束值,num
表示创建的数组内元素的数量,默认为50个,endpoint
表示是否包含末尾值,retstep
表示是否显示间隔,为True则显示,默认不显示,dtype
表示数组数据类型。 -
numpy.logspace(start,stop,num=50,endpoint=True,base =10,dtype=None)
:创建一个等比数列。start
表示起始值,stop
表示结束值,num
表示创建的数组内元素的数量,默认为50个,endpoint
表示是否包含末尾值,base
表示底数为多少,默认为10,dtype
表示数据类型。 -
numpy.arange(start, stop, step, dtype)
:创建数组范围并返回ndarrary对象。>>>start
表示起始值,stop
表示结束值,不包括末尾值,step
表示步长,即间隔。
代码如下:
import numpy as np
# 创建一个等差数列的数组,元素为20个,不包含结尾数,显示间隔
l0 = np.linspace(1,21,num=20,endpoint=False,retstep=True,dtype=int)
display(l0)
# 创建一个等比数列的数组,元素为11个,基数为2
l1 = np.logspace(0,10,num=11,base=2,dtype=int)
display(l1)
# 创建一个1到10的范围数,间隔为2
l2 = np.arange(1,10,2)
display(l2)
结果如下:
-
numpy.random.random(size=None)
:生成一个0~1之间的随机数。>>>size
表示数组形状。 -
numpy.random.rand(d0, d1, ..., dn)
:生成一个0~1之间的随机数。>>>d0, d1, ..., dn
表示个数。
代码如下:
import numpy as np
# 创建0~1之间的随机数,形状为3行4列
r0 = np.random.random((3,4))
display(r0)
r1 = np.random.rand(3,4)
display(r1)
结果如下:
-
numpy.random.randint(low, high=None, size=None, dtype=int)
:创建一个随机整数数组。>>>low
表示最小值,high
表示最大值,但不包括,size
表示数组样式,dtype
表示数据类型。 -
numpy.random.randn(d0, d1, ..., dn)
:正太分布,均值为0,标准偏差为1。>>>d0, d1, ..., dn
表示个数。 -
numpy.random.normal(loc=0.0, scale=1.0, size=None)
:正太分布,可设置,均值和偏差。>>>loc
表示均值,scale
表示偏差,size
表示数组样式。
代码如下:
import numpy as np
# 创建一个3行4列的随机数,范围为0,10
i0 = np.random.randint(0,10,size=(3,4))
display(i0)
i1 = np.random.randn(3)
display(i1)
# 均值为1,方差为2,3行4列
i3 = np.random.normal(loc=1,scale=2,size=(3,4))
display(i3)
结果如下: