Numpy库各种实例
import numpy as np
#第一个
print('------------------------------')
arr0 = np.array([1, 2, 3, 4]) #通过列表创建一维数组
print(arr0)
#第二个
print('------------------------------')
arr1 = np.array([[1, 2], [3, 4]]) #通过列表穿件二维数组
print(arr1)
#第三个
print('------------------------------')
arr2 = np.array([(2, 4.5, 6.0), (3.7, 6, 9.9)]) #通过元组创建数组
print(arr2)
#第四个
print('------------------------------')
arr3 = np.zeros((2, 3)) #通过元组(2,3)生成全零矩阵
print(arr3)
#第五个
print('------------------------------')
arr4 = np.random.random(size=(2, 3)) #生成每个元素都在(0,1)之间的2x3随机矩阵
print(arr4)
#第六个
print('------------------------------')
arr5 = np.arange(6, 30, 5) #生成等距序列,参数为起点、终点、步长值。序列含起点值,不含终点值
print(arr5)
print('------------------------------')
#第七个
arr6 = np.linspace(6, 30, 5) #生成等距序列,参数为起点、终点、步长值。序列含起点值和终点值
print(arr6)
#第八个
print('------------------------------')
arr7 = np.array([(3.2, 4, 8.5), (2, 7, 1)]) #通过元组创建数组
print(arr7.shape) #返回矩阵的规格
print(arr7.size) #返回矩阵的总数
print(arr7.dtype.name) #返回矩阵的数据类型
print(arr7.ndim) #返回矩阵的秩
print("float64(21) = ", np.float64(21))
print("int8(34.0) = ", np.int8(34.0))
print("bool(2) = ", np.bool(2))
print("bool(0) = ", np.bool(0))
print("bool(34.0) = ", np.bool(34.0))
print("int8(True) = ", np.int8(True))
print("int8(False) = ", np.int8(False))
print("float(True) = ", np.float(True))
print("float(False) = ", np.float(False))
print("arrange(7, dtype = uint16) = ", np.arange(7, dtype= np.uint16))
#Numpy数组运算
print('------------------------------')
arr8 =np.array([[2, 1], [1, 2]])
arr9 =np.array([[1, 2], [3, 4]])
print(arr8 -arr9) #矩阵的减法
print(arr8**2) #对矩阵的每个元素进行平方
print(arr9*3) #矩阵的数乘
print(arr8*arr9) #矩阵对应位置的元素相乘
print(np.dot(arr8, arr9)) #矩阵与矩阵相乘
arr10 = np.array([[1, 2, 3, 4], [5, 6, 7, 8]])
print(arr10.T) #矩阵转置
print(np.linalg.inv(arr9)) #计算逆矩阵
print(arr8.sum()) #数组元素求和
print(arr9.max()) #返回数组最大元素
#一维数组的切片和索引
print('------------------------------')
a = np.arange(15)
print(a)
print(a[3:11])
print(a[:7:2])
print(a[::-1])
s = slice(3, 7, 2)
print(a[s])
s = slice(None, None, -1)
print(a[s])
#多维数组的索引和切片
b = np.arange(24).reshape(2, 3, 4)
print(b)
print(b.shape)
print(b[0, 0, 0])
print(b[:, 0, 0])
print(b[0])
print(b[0, :, :])
print(b[0, ...])
print(b[0, 1])
print(b[0, 1, ::2])
print(b[..., 1])
print(b[0, :, 1])
print(b[0, :,-1])
print(b[0, ::-1, -1])
print(b[0, ::2, -1])
print(b[::-1])
s = slice(None, None, -1)
print(b[s, s, s])
#合并数组
print('------------------------------')
a = np.arange(9).reshape(3, 3)
print(a)
b = 2*a
print(b)
print(np.vstack((a, b))) #纵向合并数组,由于与堆栈类似,故命名为vstake
print('------------------------------')
print(np.concatenate((a, b), axis=0))
print(np.hstack((a, b))) #横向合并数组
print('------------------------------')
print(np.concatenate((a, b), axis=1))
print(np.hstack((a, b)))
#分割数组
print('------------------------------')
a = np.arange(9).reshape(3, 3)
print(a)
print('------------------------------')
print(np.hsplit(a, 3)) #将数组横向分为2部分
print('------------------------------')
print(np.vsplit(a, 3)) #将数组纵向分为3部分
print('------------------------------')