向多维数组的每个元素添加值

问题描述 投票:0回答:2

我想知道如何向NXN多维数组的每个元素添加值。我尝试过[multiarray中x的x + 1],但是这个仅对一维数组产生。

也许像这样:

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)  

但是这似乎是错误的?

python arrays multidimensional-array
2个回答
1
投票

出于效率的考虑,建议对数组使用NumPy。然后,您可以简单地使用broadcasting向数组的每个元素添加值。下面是一个插图:

# 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]])

0
投票

索引重复

您需要一个内部列表来获取内部结果,并使用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]]
© www.soinside.com 2019 - 2024. All rights reserved.