Python科学计算库(Numpy)基础篇(IDE为Pycharm)-数值计算
程序员文章站
2022-06-01 12:06:07
...
第一篇博客已经讲了Numpy中数组的基本操作,下面开始讲Numpy中数值计算所使用的一般方法.
(1)复制与赋值
赋值:将100赋值给第一行第一列的数
import numpy as np
# 定义一个数组
array = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
# 将100赋值给第一行,第一列的数
array[1,1] = 100
print(array)
输出结果为:
[[ 1 2 3]
[ 4 100 6]
[ 7 8 9]]
复制:将赋值后的数组复制下来
import numpy as np
# 定义一个数组
array = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
# 将100赋值给第一行,第一列的数
array[1,1] = 100
print(array)
array0 = array.copy()
print(array0)
输出结果为:
[[ 1 2 3]
[ 4 100 6]
[ 7 8 9]]
[[ 1 2 3]
[ 4 100 6]
[ 7 8 9]]
上面讲过赋值与复制了,下面开始正题
(2)数组数值的简单计算
数组中所有元素的求和,代码如下:
import numpy as np
# 定义一个数组
array = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
array0 = np.sum(array)
print(array0)
输出结果为 45
对一个二维数组来说,既可以对行求和,也可以对列求和,代码如下:
import numpy as np
# 定义一个数组
array = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
# 对行求和
array2 = np.sum(array, axis=1)
print(array2)
# 对列求和
array3 = np.sum(array, axis=0)
print(array3)
输出结果为array2 = [6, 15, 24], array3 = [12, 15, 18]
除了求和,计算的方式还有许多,直接看代码和注释
import numpy as np
# 定义一个数组
array = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
# 各个元素累乘
array4 = np.prod(array)
print(array4)
# 求元素的最小值
array5 = np.min(array)
print(array5)
# 求均值
array6 = np.mean(array)
print(array6)
# 求标准差
array7 = np.std(array)
print(array7)
# 求方差
array8 = np.var(array)
print(array8)
# 比2大的全部为2,比4大的全部为4
array9 = np.clip(array, 2, 4)
print(array9)
输出结果为:
362880
1
5.0
2.581988897471611
6.666666666666667
[[2 2 3]
[4 4 4]
[4 4 4]]
所有操作原理都是相同的,如果指定维度,就参照上面的求和代码进行计算。
如果不是找最大值或最小值的具体值是多少,而是要找到他们具体的位置,如果指定维度,就参照上面的求和代码进行计算,代码如下:
import numpy as np
# 定义一个数组
array = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
array10 = np.argmin(array)
print(array10)
输出结果为其具体位置:0
(3)矩阵的乘法
主要介绍两种常用的计算方式:一种是按照对应元素进行相乘,另一种是在数组中进行的矩阵乘法,直接看代码:
import numpy as np
x = np.array([[1, 1], [2, 2]])
y = np.array([[1, 1], [2, 2]])
# 对应位置相乘
a = np.multiply(x, y)
print(a)
# 矩阵乘法
b = np.dot(x, y)
print(b)
输出结果为:
a = [[1 1]
[4 4]]
b = [[3 3]
[6 6]]