numpy数组03-数组的计算

发布时间:2023年12月30日

一.数组与数字之间进行计算

numpy中的数组与数字进行计算是广播形式,数组+-*/数字,则数组中的每一个数字都会进行相应的四则运算。

1.1数组与数字之间的四则运算

示例代码如下:

import numpy as np


a = np.arange(24)
b = a.reshape(4, 6)
print(b)
print(b+2)
print(b-2)
print(b*2)
print(b/2)

输出结果如下所示:

可以发现数组中的每一个数字有进行了运算。

1.2数组/0的运算(运行时程序会警告,但是不会报错)

示例代码如下:

import numpy as np


a = np.arange(24)
b = a.reshape(4, 6)
print(b)
print(b/0)

输出结果如下:

?其中nan是0/0的结果

inf是非零数字/0的结果,inf为infinitely的缩写,表示无穷大。

二、数组与数字之间的运算

2.1 两个数组形状相同

当两个数组的形状一样的时候,四则运算对应的位置的数字进行操作。

示例代码如下:

b = np.arange(24).reshape(4, 6)
c = np.arange(100, 124).reshape(4, 6)
print(b)
print("------")
print(c)

print(b+c)
print(b-c)
print(b*c)
print(b/c)

输出结果如下:

?结果为直接对应的数据进行运算。

2.2 当两个数组的形状不相同

2.2.1 若两个数组的列相同

则按照每一行的数据进行相加

示例代码如下:

b = np.arange(24).reshape(4, 6)  # 4*6
s = np.arange(0, 6)              # 1*6
print(b)
print(s)
print(b+s)  # b的每一行加上s对应的数

输出结果如下:

2.2.2 若两个数组的行相同

则按照每列进行多次相加

示例代码如下:

j = np.arange(4).reshape(4, 1)
b = np.arange(24).reshape(4, 6)
print(j)
print(b+j)

输出结果如下所示:

注意点:

三维数组只能在某一维度(某一方向)上中的行和列都一样,才能进行运算。

若行的维度和列的维度都不一样,则不能进行运算。

例如:

shape为(3,3,3)的数组不能与(3,2)进行计算。

shape为(3,3,3)的数组能与(3,3)进行计算。

文章来源:https://blog.csdn.net/weixin_47702917/article/details/135298035
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。