第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

NumPy 中的多維情況是否存在與 np.take 相反的情況?

NumPy 中的多維情況是否存在與 np.take 相反的情況?

HUWWW 2023-09-26 14:07:28
如果我有N-D 數(shù)組a和一維數(shù)組indexes和,那么將值分配給沿給定軸使用這些索引索引的子數(shù)組的axis最短/最簡單的方法是什么?a如果N和axis在代碼編寫時(shí)已知/固定,那么我可以輕松地做到a[:,   :,   :,   indexes,   :,   :] = b                ^^axis pos^^但是如果N和axis僅在運(yùn)行時(shí)才知道,例如在用戶輸入一些數(shù)據(jù)之后,該怎么辦?我發(fā)現(xiàn)的最簡單的形式是這樣的:a[(slice(None),) * (axis % a.ndim) + (indexes,)] = b但也許有一些內(nèi)置功能?有np.put但它似乎只適用于扁平數(shù)組,不支持多維。還有np.take,它適用于多維情況,但與我需要的相反,它讀取數(shù)據(jù)而不是寫入,盡管具有我正在尋找的寫入語法。你可以這樣做:b = np.take(a, indexes, axis)那么有相反的嗎np.take?就像np.nd_put,可以這樣做:np.nd_put(a, indexes, axis, b)
查看完整描述

1 回答

?
jeck貓

TA貢獻(xiàn)1909條經(jīng)驗(yàn) 獲得超7個(gè)贊

一種方法是排列軸,將其置于axis前面并簡單地索引 -


np.moveaxis(a,axis,0)[indexes] = np.moveaxis(b,axis,0)

np.put_along_axis如果您正在尋找圍繞 bultin 構(gòu)建的東西,則另一個(gè)-


i = [None]*b.ndim

i[axis] = Ellipsis

np.put_along_axis(a, indexes[tuple(i)], b, axis=axis)

為了完整起見,這是切片版本 -


i = [slice(None)]*b.ndim

i[axis] = indexes

a[tuple(i)] = b

您可以將其轉(zhuǎn)換為單行代碼以進(jìn)行i列表理解。


查看完整回答
反對 回復(fù) 2023-09-26
  • 1 回答
  • 0 關(guān)注
  • 116 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號