日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

08.Numpy数组迭代

發(fā)布時(shí)間:2023/12/20 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 08.Numpy数组迭代 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一般迭代

NumPy包包含一個(gè)迭代器對(duì)象numpy.nditer。 它是一個(gè)有效的多維迭代器對(duì)象,可以用于在數(shù)組上進(jìn)行迭代。 數(shù)組的每個(gè)元素可使用 Python的標(biāo)準(zhǔn)Iterator接口來(lái)訪問(wèn)。

使用arange()函數(shù)創(chuàng)建一個(gè) 3X4 數(shù)組,并使用nditer對(duì)它進(jìn)行迭代。

示例 1

>>> a = np.arange(0, 60, 5) >>> a.shape = 3, 4 array([[ 0, 5, 10, 15],[20, 25, 30, 35],[40, 45, 50, 55]]) >>> for x in np.nditer(a): ... print(x) ... ... 0 5 10 15 20 25 30 35 40 45 50 55 >>>

示例 2

迭代的順序匹配數(shù)組的內(nèi)容布局,而不考慮特定的排序。 這可以通過(guò)迭代上述數(shù)組的轉(zhuǎn)置來(lái)看到。

>>> import numpy as np >>> a = np.arange(0, 60, 5) >>> a.shape = 3, 4 >>> a array([[ 0, 5, 10, 15],[20, 25, 30, 35],[40, 45, 50, 55]]) >>> b = a.T >>> b array([[ 0, 20, 40],[ 5, 25, 45],[10, 30, 50],[15, 35, 55]]) >>> for x in np.nditer(b): ... print(x) ... ... 0 5 10 15 20 25 30 35 40 45 50 55

迭代順序

如果相同元素使用F風(fēng)格順序存儲(chǔ),則迭代器選擇以更有效的方式對(duì)數(shù)組進(jìn)行迭代。

示例 1

>>> c = b.copy(order='F') >>> for x in np.nditer(c): ... print(x) ... ... 0 5 10 15 20 25 30 35 40 45 50 55 >>>

示例 2

可以通過(guò)顯式提醒,來(lái)強(qiáng)制nditer對(duì)象使用某種順序:

>>> for x in np.nditer(a, order='C'): ... print(x) ... ... 0 5 10 15 20 25 30 35 40 45 50 55 >>> for x in np.nditer(a, order='F'): ... print(x) ... ... 0 20 40 5 25 45 10 30 50 15 35 55 >>>

修改數(shù)組的值

nditer對(duì)象有另一個(gè)可選參數(shù)op_flags。 其默認(rèn)值為只讀,但可以設(shè)置為讀寫或只寫模式。 這將允許使用此迭代器修改數(shù)組元素。

示例

>>> for x in np.nditer(a, op_flags=['readwrite']): ... x[...]=2*x ... ... >>> a array([[ 0, 10, 20, 30],[ 40, 50, 60, 70],[ 80, 90, 100, 110]]) >>>

外部循環(huán)

nditer類的構(gòu)造器擁有flags參數(shù),它可以接受下列值:

序號(hào)參數(shù)及描述
1.c_index 可以跟蹤C(jī)順序的索引
2.f_index 可以跟蹤Fortran順序的索引
3.multi-index 每次迭代可以跟蹤一種索引類型
4.external_loop 給出的值是具有多個(gè)值的一維數(shù)組,而不是零維數(shù)組

示例

在下面的示例中,迭代器遍歷對(duì)應(yīng)于每列的一維數(shù)組。

>>> for x in np.nditer(a, flags=['external_loop'], order='F'): ... print(x) ... ... [ 0 40 80] [10 50 90] [ 20 60 100] [ 30 70 110]

廣播迭代

如果兩個(gè)數(shù)組是可廣播的,nditer組合對(duì)象能夠同時(shí)迭代它們。 假設(shè)數(shù)組a具有維度 3X4,并且存在維度為 1X4 的另一個(gè)數(shù)組b,則使用以下類型的迭代器(數(shù)組b被廣播到a的大小)。

示例

>>> a = np.arange(0, 60, 5) >>> a.shape = 3, 4 >>> b = np.arange(1, 5) >>> a array([[ 0, 5, 10, 15],[20, 25, 30, 35],[40, 45, 50, 55]]) >>> b array([1, 2, 3, 4]) >>> for x,y in np.nditer([a, b]): ... print(x, ':', y) ... ... 0 : 1 5 : 2 10 : 3 15 : 4 20 : 1 25 : 2 30 : 3 35 : 4 40 : 1 45 : 2 50 : 3 55 : 4

轉(zhuǎn)載于:https://www.cnblogs.com/oneTOinf/p/10504185.html

總結(jié)

以上是生活随笔為你收集整理的08.Numpy数组迭代的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。