1.维度相关
.ndim :维度
.shape :各维度的尺度 (2,5)
.size :元素的个数 10
.itemsize :每个元素的大小,以字节为单位
reshape()
>>> np.zeros([2,3])
array([[ 0., 0., 0.],
[ 0., 0., 0.]])
>>> np.zeros([2,3]).ndim
2
>>> np.zeros([2,3]).shape
(2, 3)
>>> np.zeros([2,3]).size
6
>>> np.zeros([2,3],dtype="float32").itemsize
4
>>> np.arange(8).reshape(2,4)
array([[0, 1, 2, 3],
[4, 5, 6, 7]])
shape引用
>>> np.ones([2,3]).shape[0]
2
>>> np.ones([2,3]).shape[1]
3
2. 类型相关
.dtype :元素的类型 dtype(‘int32’)
.astype : 改变元素类型
>>> np.zeros([2,3]).dtype
dtype('float64')
>>> np.zeros([2,3],dtype="float32").dtype
dtype('float32')
>>> np.ones([2,3]).astype(np.int).dtype
dtype('int32')
3. 矩阵生成相关
.array():生成矩阵
>>> np.array([[1,2,4],[4,5,6]])
array([[1, 2, 4],
[4, 5, 6]])
np.arange(n) ; 元素从0到n-1的ndarray类型
np.linspace(1,10,4): 根据起止数据等间距地生成数组
np.linspace(1,10,4, endpoint = False):endpoint 表示10是否作为生成的元素
>>> np.arange(5)
array([0, 1, 2, 3, 4])
>>> np.arange(0,1,0.1)
array([ 0. , 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9])
>>> np.linspace(0,1,10)
array([ 0. , 0.11111111, 0.22222222, 0.33333333, 0.44444444,
0.55555556, 0.66666667, 0.77777778, 0.88888889, 1. ])
>>> np.linspace(0,1,11)
array([ 0. , 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1. ])
>>> np.linspace(0,1,10,endpoint=False)
array([ 0. , 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9])
下面这几个shape必须输入[]格式
np.ones(shape): 生成全1
np.zeros((shape), ddtype = np.int32) : 生成int32型的全0
np.full(shape, val): 生成全为val
np.eye(n) : 生成单位矩阵
>>> np.full([2,3],4)
array([[4, 4, 4],
[4, 4, 4]])
>>> np.full([2,3],4,dtype=np.int64)
array([[4, 4, 4],
[4, 4, 4]], dtype=int64)
>>> np.eye(3)
array([[ 1., 0., 0.],
[ 0., 1., 0.],
[ 0., 0., 1.]])
np.ones_like(a) : 按数组a的形状生成全1的数组
np.zeros_like(a): 同理
np.full_like (a, val) : 同理
>>> np.ones_like(a)
array([[1, 1, 1],
[1, 1, 1]])
>>> np.zeros_like(a)
array([[0, 0, 0],
[0, 0, 0]])
>>> np.full_like(a,5)
array([[5, 5, 5],
4. 切片和索引
[起始:终止(不含有):步长]
其余和matlab类似
>>> a=np.array([1,2,3,4,5])
>>> a[1:4:2]
array([2, 4])
>>> a=np.array([[1,2,3],[4,5,6]])
>>> a[1,:]
array([4, 5, 6])
5. 计算
np.abs(a) np.fabs(a) : 取各元素的绝对值,前者返回int
,后者返回float
np.sqrt(a) : 计算各元素的平方根
np.square(a): 计算各元素的平方
np.log(a) np.log10(a) np.log2(a) : 计算各元素的自然对数、10、2为底的对数
np.ceil(a) np.floor(a) : 计算各元素的ceiling 值, floor值(ceiling向上取整,floor向下取整)
np.rint(a) : 各元素 四舍五入
np.modf(a) : 将数组各元素的小数和整数部分以两个独立数组形式返回
np.exp(a) : 计算各元素的指数值
np.sign(a) : 计算各元素的符号值 1(+),0,-1(-)
np.maximum(a, b) np.fmax() : 比较(或者计算)元素级的最大值
np.minimum(a, b) np.fmin() : 取最小值
np.mod(a, b) : 元素级的模运算
np.copysign(a, b) : 将b中各元素的符号赋值给数组a的对应元素
6.random库
>>> np.random.rand(2,3)
array([[ 0.05744458, 0.09174029, 0.79843883],
[ 0.3283518 , 0.69069531, 0.17128676]])
- np.random.rand [0,1)之间 随机浮点数组
- np.random.randn 正态分布 浮点数组