numpy的基础运算(一)

前提是你 提交于 2020-02-23 03:57:01

 

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
# 都可以运算,但与行或列都不相等就没法运算了。

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!