亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

為多維數組的每個元素添加值

為多維數組的每個元素添加值

www說 2022-12-27 17:14:05
我想知道如何為 NXN 多維數組的每個元素添加一個值。我試過 [x+1 for x in multiArray],但這個只對一維數組產生。也許是這樣的:multiArray = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]addingArray=[]for i in range(3):    for j in range(3):        addingArray.append(multiArray[j]+1) #(adding 1 to each element here)  但這似乎是錯誤的?
查看完整描述

2 回答

?
慕哥6287543

TA貢獻1831條經驗 獲得超10個贊

你得到一維數組作為結果,因為你有addingArray一個簡單的列表。因此,您遍歷了您的所有元素multiArray并向其添加 1,然后將結果附加到列表中。


出于效率原因,建議對數組使用 NumPy。然后,您可以簡單地使用廣播為數組的每個元素添加值。下面是一個例子:


# input array

In [180]: multiArray = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) 


# add 1 to each value of the array

In [181]: multiArray + 1  

Out[181]: 

array([[ 2,  3,  4],

       [ 5,  6,  7],

       [ 8,  9, 10]])

如果出于某些原因你確實想要一個普通的 python 列表作為結果,你可以簡單地將它轉換為一個:


In [182]: (multiArray + 1).tolist()  

Out[182]: [[2, 3, 4], [5, 6, 7], [8, 9, 10]]


查看完整回答
反對 回復 2022-12-27
?
烙印99

TA貢獻1829條經驗 獲得超13個贊

指數迭代

你需要有一個內部列表來獲取內部結果,并使用 訪問好的值multiArray[i][j],也不要使用常量3習慣使用對象長度


addingArray=[]

for i in range(len(multiArray)):

    innerArray = []

    for j in range(len(multiArray[i])):

        innerArray.append(multiArray[i][j]+1)

    addingArray.append(innerArray)  


print(addingArray) # [[2, 3, 4], [5, 6, 7], [8, 9, 10]]

值迭代

您也可以直接遍歷 arra 以簡化并且不要同時使用索引


addingArray=[]

for inner in multiArray:

    innerArray = []

    for value in inner:

        innerArray.append(value+1)

    addingArray.append(innerArray)  

列表理解

并用列表理解語法縮短它


multiArray = [[v+1 for v in inner] for inner in multiArray]

print(multiArray) # [[2, 3, 4], [5, 6, 7], [8, 9, 10]]


查看完整回答
反對 回復 2022-12-27
  • 2 回答
  • 0 關注
  • 146 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號