一、numpysize簡介
在numpy中,numpysize是指數組的形狀大小,也就是數組的維度。比如一個二維數組np.array([[1,2], [3,4]])的numpysize為(2,2),表示該數組有兩行兩列。
二、numpysize的獲取
可以通過numpy的shape屬性獲取數組的numpysize信息:
import numpy as np
arr = np.array([[1,2], [3,4]])
print(arr.shape) #輸出:(2,2)
也可以使用numpy的ndim屬性獲取數組的維度數:
import numpy as np
arr = np.array([[1,2], [3,4]])
print(arr.ndim) #輸出:2
三、numpysize的修改
可以使用reshape方法修改數組的numpysize。reshape方法會返回一個新的數組,新數組的numpysize和原數組不同。比如將原數組np.array([[1,2], [3,4]])修改為一維數組:
import numpy as np
arr = np.array([[1,2], [3,4]])
new_arr = arr.reshape(4)
print(new_arr) #輸出:[1 2 3 4]
print(new_arr.shape) #輸出:(4,)
除了reshape方法,還可以使用resize方法在不返回新數組的情況下進行numpysize修改:
import numpy as np
arr = np.array([[1,2], [3,4]])
arr.resize(4)
print(arr) #輸出:[1 2 3 4]
print(arr.shape) #輸出:(4,)
四、numpysize和廣播機制
在numpy中,當兩個數組進行運算時,會遵循廣播機制進行運算。其中,廣播機制會根據兩個數組的numpysize進行擴展。具體來說,首先會將兩個數組進行維度擴充,直到兩個數組的numpysize相同;其次,如果兩個數組在某個維度的numpysize都為1,那麼會對該維度進行擴展,直到兩個數組在該維度的numpysize相同。
比如一個三維數組a的numpysize為(2,3,1),而一個二維數組b的numpysize為(3,1),則對a和b進行加法運算時,b會被擴展為(1,3,1),然後再擴展為(2,3,1)。示例如下:
import numpy as np
a = np.array([[[1],[2],[3]],[[4],[5],[6]]])
b = np.array([[10,20,30],[100,200,300]])
c = a + b
print(c)
'''
輸出:
array([[[ 11, 21, 31],
[101, 201, 301],
[nan, nan, nan]],
[[ 14, 24, 34],
[104, 204, 304],
[nan, nan, nan]]])
'''
可以看到,b在第一維和第三維都被擴展為1,最後變成了(2,3,1),然後a和b依次相加。
五、結語
本文從numpysize的簡介、獲取、修改、和廣播機制等幾個方面對numpysize進行了詳細的講解。numpysize在numpy中起到了非常重要的作用,深入理解numpysize有助於我們更好地理解數組的操作和運算。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/291734.html