import numpy as np
# dtype指定类型, np.int64指占用的空间是64
array = np.array([[1,2,3],
[2,3,4]],dtype = np.int64)
# 打印array
print(array)
print('number of dim',array.ndim)
# 二行三列
print('shape',array.shape)
# 元素的大小
print('size',array.size)
print(array.dtype)
# 定义一个三行四列的0矩阵
arrayv1 = np.zeros((3,4),dtype = np.int16)
print(arrayv1)
# 定义一个三行四列的1矩阵
arrayv2 = np.ones((3,4),dtype=np.int64)
print(arrayv2)
# 生成指定步长的矩阵
arrayv3 = np.arange(10,20,3)
print(arrayv3)
# 生成一个3*4的矩阵
arrayv4 = np.arange(12).reshape((3,4))
print(arrayv4)
# 生成线段,从1开始到10结束,总共有20段
arrayv5 = np.linspace(1,10,5)
print(arrayv5)
# numpy的基础运算
arrayv6 = np.array([60,20,30,40])
b = np.arange(4)
print(arrayv6,b)
c = arrayv6 + b
print(c)
# 平方
c = b**2
print(c)
# 三角函数
d = 10 * np.cos(arrayv6)
print(d)
# 过滤出c中小于5的数,返回的是bool
print(c < 5)
# 矩阵之间的元素逐个相乘
c = arrayv4*b
# 矩阵与矩阵相乘
c_dot = np.dot(arrayv4,b)
# 上面写法可变形为
c_dot_v1 = arrayv4.dot(b)
# 随机生成一个矩阵
arrayv5 = np.random.random((2,4))
print('arrayv5',arrayv5)
# 求和
print(np.sum(arrayv5))
# 求最小值,axis = 0表示对每一列求最小值
print(np.min((arrayv5),axis=0))
# 求最大值,axis = 1表示对每一行求最大值
print(np.max((arrayv5),axis = 1))
A = np.arange(14,2,-1).reshape((3,4))
# 求A 的最小索引
print(np.argmin(A))
# 求A的最大索引
print(np.argmax(A))
# 求平均值
print(np.mean(A))
# 求平均值
print(A.mean())
# 求平均值
print(np.average(A))
# 求中位数
print(np.median(A))
# 逐个累加
print(np.cumsum(A))
# 逐个进行累差
print(np.diff(A))
# 逐行进行排序
print(A)
print(np.sort(A))
# 矩阵的转置
print(np.transpose(A))
print(A.T)
# 使矩阵A中大于9的数变成9,所有小于5的数变成5,介于5和9之间的数则不变
print(np.clip(A,5,9))
# 索引出第二行(从0开始算)
print(A[2])
# 第二行的所有数
print(A[2,:])
# 第一列的所有数
print(A[:,1])
# 第一行,从第一列到第二列的数
print(A[1,1:2])
for row in A:
# 输出每行
print(row)
print('flatten',A.flatten())
for item in A.flat:
print(item)
A = np.array([1,1,1])
B = np.array([2,2,2])
# 上下合并两个矩阵
C = np.vstack((A,B))
# 左右合并两个矩阵
D = np.hstack((A,B))
print('C',C)
print('D',D)
# 从纵向合并两个矩阵
A = np.array([1,1,1])[:,np.newaxis]
B = np.array([2,2,2])[:,np.newaxis]
C = np.concatenate((A,B,B,A),axis=1)
# print(np.hstack(A,A,B))
print('C',C)
E = np.arange(2,14).reshape(3,4)
print(E)
# 纵向分割成两个数组
print(np.split(E,2,axis=1))
# 纵向进行不等块的分割成三个数组
print(np.array_split(A,3,axis=1))
print(np.vsplit(E,3))
# 横向分隔
print(np.hsplit(E,2))
总结:numpy库主要是以矩阵的形式呈现于大家,因为矩阵的运算速度高于传统形式的运算,所以广泛运用于神经网络和深度学习。