我们说我有以下数组
import numpy as np
matrix = np.array([
[[1, 2, 3, 4], [0, 1], [2, 3, 4, 5]],
[[1, 2, 3], [4], [0, 1], [2, 0], [0, 0]],
[[2, 2], [3, 4, 0], [1, 1, 0, 0], [0]],
[[6, 3, 3, 4, 0], [4, 2, 3, 4, 5]],
[[1, 2, 3, 2], [0, 1, 2], [3, 4, 5]]])
正如您所看到的,它是一个错开的阵列。我想要做的是以某种方式对元素求和,使输出为:
[11, 11, 15, 18, 0, 8, 9, 9, 12, 15]
我想总结"列"中的元素。矩阵,但我不知道该怎么做。
答案 0 :(得分:4)
正如juanpa.arrivillaga在评论中所提到的,你没有多维数组,你有一个列表列表的一维数组。您需要首先展平内部列表:
>>> np.array([[z for y in x for z in y] for x in matrix])
array([[1, 2, 3, 4, 0, 1, 2, 3, 4, 5],
[1, 2, 3, 4, 0, 1, 2, 0, 0, 0],
[2, 2, 3, 4, 0, 1, 1, 0, 0, 0],
[6, 3, 3, 4, 0, 4, 2, 3, 4, 5],
[1, 2, 3, 2, 0, 1, 2, 3, 4, 5]])
现在解决问题要容易得多。此矩阵的形状为(5,10)
,并支持T
进行转置,np.sum()
用于求和行或列。
你没有写任何代码,所以我不会完全解决问题,但是使用这个矩阵,你离一步之遥:
array([11, 11, 15, 18, 0, 8, 9, 9, 12, 15])