好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > numpy中np.nditer、flags=[multi_index] 的用法說明

numpy中np.nditer、flags=[multi_index] 的用法說明

熱門標簽:荊州云電銷機器人供應商 遼寧400電話辦理多少錢 江蘇房產電銷機器人廠家 幫人做地圖標注收費算詐騙嗎 外呼不封號系統 悟空智電銷機器人6 電信營業廳400電話申請 溫州旅游地圖標注 蘇州電銷機器人十大排行榜

在看CS231n的時候,有這么一行代碼

it = np.nditer(x, flags=['multi_index'], op_flags=['readwrite'])

查了查np.nditer原來是numpy array自帶的迭代器。這里簡單寫個demo解釋一下np.nditer的用法。

先構建一個3x4的矩陣

然后輸入命令

flags=['multi_index']表示對a進行多重索引,具體解釋看下面的代碼。

op_flags=['readwrite']表示不僅可以對a進行read(讀取),還可以write(寫入),即相當于在創建這個迭代器的時候,我們就規定好了有哪些權限。

迭代一下試一試

print it.multi_index表示輸出元素的索引,可以看到輸出的結果都是index。

it.iternext()表示進入下一次迭代,如果不加這一句的話,輸出的結果就一直都是(0, 0)。

補充:it = np.nditer(x, flags=['multi_index'], op_flags=['readwrite'])

在看cs221n代碼的時候碰到一行代碼。

it = np.nditer(x, flags=['multi_index'], op_flags=['readwrite'])

np.nditer()函數解析

class np.nditer()

參數:

op : ndarray或array_like的序列。迭代的數組。

flags : str的序列,可選。用于控制迭代器行為的標志。

“buffered”可在需要時啟用緩沖。

“c_index”導致跟蹤C順序索引。

“f_index”導致跟蹤Fortran-order索引。

“multi_index”導致跟蹤多個索引或每個迭代維度一個索引元組。

“common_dtype”會將所有操作數轉換為公共數據類型,并根據需要進行復制或緩沖。

“copy_if_overlap”使迭代器確定讀操作數是否與寫操作數重疊,并根據需要進行臨時復制以避免重疊。在某些情況下,可能會出現誤報(不必要的復制)。

“delay_bufalloc”延遲緩沖區的分配,直到進行reset()調用。允許“allocate”操作數在其值復制到緩沖區之前進行初始化。

“external_loop”導致給定的值是具有多個值的一維數組,而不是零維數組。

當同時使用“buffered”和“external”循環時,“grow-inner”允許值數組大小大于緩沖區大小。

“ranged”允許將迭代器限制為iterindex值的子范圍。

“refs_ok”允許迭代引用類型,例如對象數組。

“reduce_ok”允許迭代廣播的“readwrite”操作數,也稱為縮減操作數。

“zerosize_ok”允許itersize為零。

op_flags : str列表,可選。這是每個操作數的標志列表。至少,必須指定“readonly”,“readwrite”或“writeonly”中的一個。

“readonly”表示只讀取操作數。

“readwrite”表示將讀取和寫入操作數。

“writeonly”表示只會寫入操作數。

“no_broadcast”阻止操作數被廣播。

“contig”強制操作數數據是連續的。

“aligned”強制操作數數據對齊。

“nbo”強制操作數數據以本機字節順序排列。

如果需要,“copy”允許臨時只讀副本。

“updateifcopy”允許在需要時使用臨時讀寫副本。

如果在op參數中為None,則“allocate”會導致分配數組。

“no_subtype”阻止“allocate”操作數使用子類型。

“arraymask”表示此操作數是在寫入設置了“writemasked”標志的操作數時用于選擇元素的掩碼。迭代器不強制執行此操作,但是當從緩沖區寫回數組時,它只復制由此掩碼指示的元素。

'writemasked'表示只寫入所選'arraymask'操作數為True的元素。

“overlap_assume_elementwise”可用于標記僅在迭代器順序中訪問的操作數,以便在存在“copy_if_overlap”時允許不太保守的復制。

op_dtypes : dtype的dtype 或tuple,可選。操作數所需的數據類型。如果啟用了復制或緩沖,則數據將轉換為原始類型或從其原始類型轉換。

order: {‘C',‘F',‘A',‘K'},可選

控制迭代順序。'C'表示C順序,'F'表示Fortran順序,'A'表示'F'順序,如果所有數組都是Fortran連續,否則'C'順序,‘K'表示接近數組元素出現的順序在內存中盡可能。這也會影響“allocate”操作數的元素內存順序,因為它們被分配為與迭代順序兼容。默認為'K'。

casting :{‘no', ‘equiv', ‘safe', ‘same_kind', ‘unsafe'},可選。控制進行復制或緩沖時可能出現的數據轉換類型。建議不要將此設置為“unsafe”,因為它會對累積產生不利影響。

“no”表示完全不應強制轉換數據類型。

“equiv”表示只允許更改字節順序。

“safe”表示只允許保留值的強制轉換。

“same_kind”意味著只允許安全的類型或類型內的類型,如float64到float32。

“unsafe”表示可以進行任何數據轉換。

op_axes : 整數列表列表,可選。如果提供,則是每個操作數的int或None列表。操作數的軸列表是從迭代器的維度到操作數的維度的映射。可以為條目放置值-1,從而將該維度視為“newaxis”。

itershape : 整數元組,可選。迭代器的理想形狀。這允許“allocate”具有由op_axes映射的維度的操作數不對應于不同操作數的維度,以獲得該維度不等于1的值。

buffersize : int,可選。啟用緩沖時,控制臨時緩沖區的大小。設置為0表示默認值。

例子1:

默認情況下,nditer將視待迭代遍歷的數組為只讀對象(read-only),為了在遍歷數組的同時,實現對數組元素值得修改,必須指定op_flags=['readwrite']模式:

基本迭代參數flag=['f_index'/'mulit_index'],可輸出自身坐標it.index/it.multi_index。

“multi_index”表示對x進行表示對x進行多重索引。

print("%d %s>" % (it[0], it.multi_index))表示輸出元素的索引,可以看到輸出的結果都是index。

下面分別舉例子說明:

import numpy as np
x = np.arange(6).reshape(2,3)
it = np.nditer(x, flags=['multi_index'], op_flags=['readwrite'])
while not it.finished:
 print("%d %s>" % (it[0], it.multi_index))
 it.iternext()
# 0 (0, 0)>
# 1 (0, 1)>
# 2 (0, 2)>
# 3 (1, 0)>
# 4 (1, 1)>
# 5 (1, 2)>

it.iternext()表示進入下一次迭代,如果不加這一句的話,輸出的結果就一直都是0 (0, 0)>且不間斷地輸出。

0 (0, 0)>
0 (0, 0)>
0 (0, 0)>
0 (0, 0)>
0 (0, 0)>
0 (0, 0)>
......
......

例子2:

import numpy as np
x = np.arange(6).reshape(2,3)
# 單維迭代
it = np.nditer(x, flags=['f_index'])
while not it.finished:
    print("%d %s>" % (it[0], it.index))
    it.iternext()
# 0 0>
# 1 2>
# 2 4>
# 3 1>
# 4 3>
# 5 5>
import numpy as np
x = np.arange(6).reshape(2,3)
# 多維迭代
it = np.nditer(x, flags=['multi_index'])
while not it.finished:
    print("%d %s>" % (it[0], it.multi_index))
    it.iternext()
# 0 (0, 0)>
# 1 (0, 1)>
# 2 (0, 2)>
# 3 (1, 0)>
# 4 (1, 1)>
# 5 (1, 2)>

例子3:

import numpy as np
x = np.arange(6).reshape(2,3)
# 列順序迭代
it = np.nditer(x, flags=['f_index'], order='F')
while not it.finished:
    print("%d %s>" % (it[0], it.index), end=' | ')
    it.iternext()
    
# 0 0> | 3 1> | 1 2> | 4 3> | 2 4> | 5 5> |
import numpy as np
x = np.arange(6).reshape(2,3)
# 行順序迭代
it = np.nditer(x, flags=['f_index'], order='C')
while not it.finished:
    print("%d %s>" % (it[0], it.index), end=' | ')
    it.iternext()
    
# 0 0> | 1 2> | 2 4> | 3 1> | 4 3> | 5 5> |

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • numpy 實現返回指定行的指定元素的位置索引
  • Python基礎之Numpy的基本用法詳解
  • Python基礎之numpy庫的使用
  • Python利用numpy實現三層神經網絡的示例代碼
  • numpy數據類型dtype轉換實現
  • Python數據清洗工具之Numpy的基本操作

標簽:濟南 欽州 景德鎮 黃山 宿遷 臺灣 喀什 三沙

巨人網絡通訊聲明:本文標題《numpy中np.nditer、flags=[multi_index] 的用法說明》,本文關鍵詞  numpy,中,np.nditer,flags,multi,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《numpy中np.nditer、flags=[multi_index] 的用法說明》相關的同類信息!
  • 本頁收集關于numpy中np.nditer、flags=[multi_index] 的用法說明的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 亚洲玉足AV久久影视| 欧美AⅤ永久无码精品三区在线 | WWW亚洲偷窥com| 秘?韩H漫画歪歪漫画| 亚洲超高清大胆极品人体美女| 韩国2024年R级限制片| 日韩免费高清一级毛片久久| 亚洲国产精品热久久2022| 牝教师~淫辱の教室4樱花动漫| 公与媳中字HD中字| 欧美日韩日本在线| 理伦毛片| 啊灬啊灬别停啊灬用力啊免费看| 99精品电影| 久久香蕉国产线电影资源| 网禁??拗女稀缺1366| 美女脱了内裤打开腿让人看的照片| 好大好硬好深好爽视频h| 男女一边摸一边脱一边脱动态图 | 最新丁香六月| 法国性经典xxxxhd| 奶茶视频app下载网站进入ios | 野花社区免费观看高清日本| 疯狂的撞击她的娇嫩h| 在线观看??禁无码精品男男动漫| 3d霪乱诊察室在线观看| 精品国产伦一区二区三区在线观看 | 阿拉善右旗| 假山后面的呻吟喘息h| 大豆行情网免费v| 日韩精品视频在线观看播放| 男人插曲女人免费视频| www深夜视频在线观看高清| 男生女生叉叉叉| 91精品国产乱码久久久久久| 136导航136DHFL.Com| 男男肉动漫未删减版在线观看| 谁养歪了我的反派男主| 日韩中文字幕精品无码亚洲幕空4 国产欧美日韩精久一品AV | 伊伊人成亚洲综合人网7777| 日韩网|