array = [
[0,0,0],
[1,1,1]
]
输出应为:
[
[0,1],
[0,1],
[0,1]
]
然而,我得到的是:
[]
我试过没有循环做同样的事情但是当我介绍它时它就不会附加!
请参阅此处的代码:
array = [
[0,0,0],
[1,1,1]
]
transformedArray = []
#add rows to transformed
for j in range(0, len(array) - 1):
transformedArray.append([])
#for each row
for i in range(0, len(array[0]) - 1):
#for each column
for k in range(0, len(array) - 1):
transformedArray[i].append(array[k][i])
你可以帮忙吗?我没有在网上发现任何类似的问题,所以我猜我错过了一些愚蠢的东西!
答案 0 :(得分:1)
尝试嵌套循环:
array = [
[0,0,0],
[1,1,1]
]
transformedArray = [[0,0],[0,0],[0,0]]
# iterate through rows
for i in range(len(array)):
# iterate through columns
for j in range(len(array[0])):
transformedArray[j][i] = array[i][j]
for res in transformedArray:
print(res)
返回:
[0, 1]
[0, 1]
[0, 1]
编辑添加说明:
首先,列表在上面的代码中定义:aList = [ ... ]
其中数组将被定义为anArray = numpy.array([...])
,所以就上面的注释而言,这是 list 处理问题,而不是真正的python数组进程。接下来,元素将按索引添加到列表中,因此必须有一个放置它们的位置。我通过创建一个包含3个元素的列表来处理它。原始帖子只会创建前2行,然后在创建第3行时导致索引失败。嵌套的for循环然后迭代嵌入的列表。
答案 1 :(得分:0)
您可以通过在所有阵列上映射一系列索引访问操作来实现:
for i in range( len( array[0] ) ):
transformedArray.append( map( lambda x: x[i], array ) )