欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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]]