天天看點

numpy 數組的計算

一、數組和數的計算

數組和數計算,數組中的每個元素和數進行計算

1、加

import numpy as np

arr1 = np.arange(12).reshape(3, 4)
print(arr1)

# 數組的每個元素和數進行加法運算
arr2 = arr1 + 2
print(arr2)      

2、減

import numpy as np

arr1 = np.arange(12).reshape(3, 4)
# 數組的每個元素和數進行減法運算
arr2 = arr1 - 2
print(arr2)      

3、乘

import numpy as np

arr1 = np.arange(12).reshape(3, 4)
# 數組的每個元素和數進行乘法運算
arr2 = arr1 * 2
print(arr2)      

4、除

import numpy as np

arr1 = np.arange(12).reshape(3, 4)
# 數組的每個元素和數進行除法運算
arr2 = arr1 // 2
print(arr2)      

注意:

nan:  a/b, a和b都是0

inf: a/b, b是0,a非0

二、數組和數組的計算

1、數組的形狀相同

a、加

import numpy as np

arr1 = np.arange(12).reshape(3, 4)
arr2 = np.arange(24, 36).reshape(3, 4)
# 數組中對應位置的元素分别相加
arr3 = arr1 + arr2
print(arr3)      

b、減

import numpy as np

arr1 = np.arange(12).reshape(3, 4)
arr2 = np.arange(24, 36).reshape(3, 4)
# 數組中對應位置的元素分别相減
arr3 = arr1 - arr2
print(arr3)      

c、乘

import numpy as np

arr1 = np.arange(12).reshape(3, 4)
arr2 = np.arange(24, 36).reshape(3, 4)
# 數組中對應位置的元素分别相乘
arr3 = arr1 * arr2
print(arr3)      

d、除

import numpy as np

arr1 = np.arange(12).reshape(3, 4)
arr2 = np.arange(24, 36).reshape(3, 4)
# 數組中對應位置的元素分别相除
arr3 = arr1 / arr2
print(arr3)
print(arr3.dtype)
# 數組中的每個元素保留兩位小數
arr4 = np.round(arr3, 2)
print(arr4)      

2、數組的形狀不相同

a、列數相同

import numpy as np

arr1 = np.arange(12, 24).reshape(3, 4)
arr2 = np.arange(3, 7).reshape(4,)
# 加
arr3 = arr1 + arr2
print(arr3)
# 減
arr4 = arr2 - arr1
print(arr4)
# 乘
arr5 = arr1 * arr2
print(arr5)
# 除
arr6 = arr1 / arr2
print(arr6)      

b、行數相同

import numpy as np

arr1 = np.arange(12, 24).reshape(3, 4)
arr2 = np.arange(3, 6).reshape(3, 1)
# 加
arr3 = arr1 + arr2
print(arr3)
# 減
arr4 = arr2 - arr1
print(arr4)
# 乘
arr5 = arr1 * arr2
print(arr5)
# 除
arr6 = arr1 / arr2
print(arr6)      

注意:數組的計算遵循numpy的廣播原則

三、廣播原則

1、官方概念

如果兩個數組的後緣次元(從末尾開始計算的次元)的軸長度相符或其中一方的長度為1,則認為它們是廣播兼職的。

廣播會在缺失和(或)長度為1的次元上進行。

2、自己了解

1.軸:
在numpy中可以了解為方向,使用0,1,2...數字表示
數組shape的index, 0軸 1軸
2.軸長度:
包含資料的條數
數組shape的值