亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Numpy元素的遍歷方法是什么

發布時間:2022-11-03 17:35:23 來源:億速云 閱讀:154 作者:iii 欄目:編程語言

這篇文章主要講解了“Numpy元素的遍歷方法是什么”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Numpy元素的遍歷方法是什么”吧!

一、單個數組的遍歷:numpy.nditer 的使用

迭代器對象 numpy.nditer 提供了一種靈活訪問一個或者多個數組元素的方式。一般情況下的使用方式如下:for x in np.nditer(data_in, order=''),可以遍歷nparray中的所有數據,舉例如下:

a = np.arange(12).reshape(3,4)
for x in np.nditer(a):
    print(x,end=',')
# 0,1,2,3,4,5,6,7,8,9,10,11,

格式:np.nditer(data_in, order='',op_flags =[],flags=[])

參數解釋如下:

參數解釋
data_innparray 類型的數組
order控制遍歷的順序,可選值為:F 列優先/C 行優先, 默認為C
op_flags控制遍歷出元素的讀寫權限,常用:<br>op_flags=['read-only']  只讀;<br>op_flags=['readwrite'] 可讀可寫
flags該參數通常使用flags = ['external_loop'],可以將二維數組變化為一維數組輸出,詳細參考下面例子

1.1 參數:order

通過參數 order='F' or  order='C' 可以通過改變遍歷的順序;舉例如下:

for x in np.nditer(a, order='F'): # Fortran order,即是列序優先;for x in np.nditer(a.T, order='C'): # C order,即是行序優先;

for x in np.nditer(a,order='F'):
    print(x,end=',')
# 0,4,8,1,5,9,2,6,10,3,7,11,
for x in np.nditer(a,order='C'):
    print(x,end=',')
# 0,1,2,3,4,5,6,7,8,9,10,11,

1.2 參數:op_flags

默認情況下,nditer 對nparray進行遍歷時,遍歷出的元素為只讀對象(read-only),若我們需要修改其中的值,需要設置:op_flags=['readwrite']

a = np.arange(12).reshape(3,4)
for x in np.nditer(a,op_flags=['readwrite']):
    x[...] = 2*x
print(a)
# [[ 0  2  4  6]
#  [ 8 10 12 14]
#  [16 18 20 22]]

1.3 參數:flags

嘗試用的參數設置為:flags = ['external_loop'] ,其余的設置不常用,就不列舉了;當設置flags = ['external_loop'] 后,可以實現對二維數組的行或者列的輸出,在今后的寫代碼過程中,給大家帶來便利;舉例如下:

參數解釋
c_index可以跟蹤 C 順序的索引, 用來返回索引值
f_index可以跟蹤 Fortran 順序的索引,用來返回索引值
external_loop給出的值是具有多個值的一維數組,而不是零維數組

舉例:

# 返回索引值舉例
a = np.arange(12).reshape(3,4)
for x in  np.nditer(a,flags=['f_index'],order='F'):
    print(x,end=',')
# 0,4,8,1,5,9,2,6,10,3,7,11,
for x in  np.nditer(a,flags=['f_index'],order='C'):
    print(x,end=',')
# 0,1,2,3,4,5,6,7,8,9,10,11,

# 返回列方向的多個一維數組
a = np.arange(12).reshape(3,4)
for x in  np.nditer(a,flags=['external_loop'],order='F'):
    print(x)
# [0 4 8]
# [1 5 9]
# [ 2  6 10]
# [ 3  7 11]

二、多個數組的遍歷

2.1 多個數組Shape相同時

當數組Shape相同時,可以直接使用np.nditer(), 舉例如下:

a = np.arange(12).reshape(3,4)
b = np.ones(12).reshape(3,4)
for i,j in np.nditer([a,b]):
    print(i,"-->",int(j))
# 輸出如下:
# 0 --> 1
# 1 --> 1
# 2 --> 1
# 3 --> 1
# 4 --> 1
# 5 --> 1
# 6 --> 1
# 7 --> 1
# 8 --> 1
# 9 --> 1
# 10 --> 1
# 11 --> 1

2.2 多個數組Shape不同時

當數組Shape不同時,需要滿足廣播規則,才可以使用廣播遍歷,廣播規則請參考:請添加鏈接描述 舉例如下:

a = np.arange(12).reshape(3,4)
b = np.arange(4)
for i,j in np.nditer([a,b]):
    print(i,"-->",j)
# 輸出如下:
# 0 --> 0
# 1 --> 1
# 2 --> 2
# 3 --> 3
# 4 --> 0
# 5 --> 1
# 6 --> 2
# 7 --> 3
# 8 --> 0
# 9 --> 1
# 10 --> 2
# 11 --> 3

感謝各位的閱讀,以上就是“Numpy元素的遍歷方法是什么”的內容了,經過本文的學習后,相信大家對Numpy元素的遍歷方法是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

湖口县| 甘孜| 白朗县| 开平市| 龙山县| 津市市| 郸城县| 绩溪县| 根河市| 克拉玛依市| 托克逊县| 同仁县| 潮州市| 辽宁省| 兴隆县| 水城县| 秦皇岛市| 托克逊县| 威海市| 灵丘县| 九江县| 雅江县| 涞水县| 德化县| 施秉县| 囊谦县| 双鸭山市| 内乡县| 广州市| 象州县| 龙里县| 亚东县| 会宁县| 姜堰市| 衡水市| 图木舒克市| 奈曼旗| 贵州省| 信丰县| 固阳县| 隆子县|