中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

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

启东市| 昭平县| 营山县| 太湖县| 西林县| 百色市| 嘉鱼县| 福清市| 克什克腾旗| 友谊县| 元阳县| 界首市| 射阳县| 桂平市| 怀远县| 上林县| 株洲县| 仙游县| 大英县| 安西县| 靖安县| 岑巩县| 北京市| 荥阳市| 威远县| 揭西县| 饶平县| 宣恩县| 博兴县| 开化县| 平果县| 贵溪市| 忻州市| 阜康市| 化州市| 增城市| 宁明县| 额济纳旗| 洪洞县| 黑水县| 玉门市|