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初级(二)-LMLPHP

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初级(二)-LMLPHP

  • 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初级(二)-LMLPHP

  • 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初级(二)-LMLPHP

  • 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初级(二)-LMLPHP

  • 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)

结果如下:

数据分析--Numpy初级(二)-LMLPHP

06-05 19:49