Numpy:python中最基础的科学运算库,一个在Python中做科学计算的基础库,重在数值计算,多用于在大型、多维数组上执行数值运算。
numpy 数组的生成
a = np.array([[0, 1],
[5, 9]]) # 列表间带逗号
print(a)
b = np.arange(4)
print(b)
c = np.arange(4).reshape((2, 2))
print(c)
数组的运算
# *对应位置的数逐个相乘
print(a*c)
# 矩阵运算的话用:
d = np.dot(a,c)
# 等同于 d = a.dot(c)
元素内部运算,筛选相关操作
e = np.random.random((2, 4))
print("e",e)
print(np.sum(e))
#行或列当中求和
print(np.sum(e, axis=0)) # 每列求和
print(np.sum(e, axis=1)) # 每行求和
print(np.min(e))
print(np.max(e))
np.argmin(c) # c中的最大值 输出位置索引
np.argmax(c) # c中最小值 输出位置索引
np.mean(c) or c.mean() # 计算c的平均值
np.average(c) or c.average() # 与上相同 算均值
np.median(c) # 中位数
np.cumsum(c) # 累加和
np.diff(c) # 两数间的累差值
np.sort(c) # 逐行排序
np.transpose(c) # 矩阵的转置cT 也可写成 c.T
np.clip(c, 2, 4) # 矩阵c 中所有大于4的数会变成4,小于2的数会变成2
print(type(c))
print(c.dtype) # 显示c内的元素类型
f = np.arange(10,dtype ="i1")
print(f)
print(f.dtype)
数组的索引、合并、分割
# # 数组的索引
# A = np.arange(3, 15).reshape((3, 4))
# print(A)
# for row in A:
# print(row) # 输出每一行
# for col in A.T:
# print(col) # 输出每一列
#
# print(A[0, 0]) # 0行0列元素
# print(A[2, :])
# print(A[:, 2])
# print(A[1, 1:2]) #第一行1-2列的数不包括2位
# B = A.reshape(12,)
# print("B", B)
# print(B[3:5]) #输出3,4元素
# array数组的合并
C = np.array([1, 1, 1])
D = np.array([2, 2, 2])
E = np.vstack((C,D))# 上下合并成2*3矩阵 stack 堆叠
print(E)
F = np.hstack((C,D)) # 左右合并成一维矩阵(6,)
print(F)
# array 分割
G = np.arange(12).reshape((3,4))
print(np.vsplit(G, 3))
print(np.hsplit(G, 2))
# array 的copy和deep copy
H1 = np.arange(4)
H2 = H1
H3 =H2
# 当改变H1时,H2,H3都会改变
# 不变的方法: deep copy
H5 = H1.copy() # H5 变,H1不会跟着变了
数组的运算(2):
# 矩阵的运算
# 1 数组(矩阵)与数字的运算
h+2 # 矩阵里每个元素都加2
h*2
h/2
# 2数组与数组的运算
t1 = np.arange(12).reshape((3, 4))
t2 = np.arange(12, 24).reshape((3, 4))
print(t1)
print(t2)
#t1 + t2
# t1 -*/ t2都可以
t3 = np.arange(3)
t4 = np.arange(4).reshape(4,1)
print(t3, "\n", t4)
t1+t3
t1-t4
# 都可以运算,但与行或列都不相等就没法运算了。
来源:CSDN
作者:weixin_45599022
链接:https://blog.csdn.net/weixin_45599022/article/details/104441838