ndarray数组属性
– 维度(dimensions)称为轴(axis), 轴的个数成为秩(rank)
axis = 0, 对列操作
axis = 1, 对行操作
– 基本属性
- ndarray.ndim(秩)
- ndarray.shape(维度)
- ndarray.size(元素总个数)
- ndarray.dtype(元素类型)
- ndarray.itemsize(元素字节大小)
ndarray的创建
import numpy as np
aArray = np.array([1, 2, 3])#创建一维数组
aArray = np.array([(1, 2, 3),(4, 5, 6)])#创建二维数组
bArray = np.arange(1, 5, 0.5)#生成浮点数
cArray = np.random.random((2, 2))#生成随机数
dArray = np.linspace(1, 2, 10, endpoint = False)#创建一个在(起始点,终点,个数,终止点是否包含在内)条件下的等差数组
eArray = np.ones([2,3])#2行3列的值为1的特殊矩阵
fArray = np.zeros((2,2))#2行2列的零矩阵
gArray = np.fromfunction(lambda i,j : (i+1)*(j+i), (9,9))#生成9*9的乘法口诀表
ndarray的切片操作
aArray = np.array([(1, 2, 3),(4, 5, 6)])
print(aArray[1]) #[4 5 6]
print(aArray[0:2]) #[[1 2 3] [4 5 6]]
print(aArray[;,[0,1]]) #[[1 2] [4 5]]
print(aArray[1,[0,1]]) #[4 5]
print(aArray[::-1]) #交换行([(4, 5, 6),(1, 2, 3)])
print(aArray[:,::-1]) #交换列([(4, 5, 6),(1, 2, 3)])
ndarray的行列变换
aArray.reshape(2,-1) #转化为2行,不明确列
aArray.reshape(-1,1) #转为1列
np.vstack((bArray,cArray))#垂直方面拼接
np.hstack((bArray,cArray))#水平方向拼接
ndarray的基本运算
a = np.array([(1, 2, 3),(4, 5, 6)])
b = np.array([(2, 2, 2),(2, 2, 2)])
c = a * b #([(2,4,6),(8,10,12)])
d = np.array([1,2,3])
e = a + d #注意不同维度的加法运算 ([[2,4,6],[5,7,9]])
print(a.sum(axis = 0)) #纵轴求和([5,7,9])
print(a.sum(axis = 1)) #横轴求和([6,15])
print(a.min()) #return min value
print(a.argmax()) #返回最大值的索引 5
print(a.mean()) #平均值
print(a.var()) #方差
print(a.std()) #标准差
print(np.dot(a,a)) #内积
print(np.linalg.det(a)) #行列式
print(np.linalg.inv(a)) #逆矩阵