我有一些2D的numpy数组(矩阵),对于每一个数组,我想将它转换为一个包含数组值的向量和一个包含每行/列索引的向量。
例如,我可能有一个这样的数组:
x = np.array([[3, 1, 4],
[1, 5, 9],
[2, 6, 5]])
我基本上希望得到这些价值观。
[3, 1, 4, 1, 5, 9, 2, 6, 5]
以及他们的位置
[[0,0], [0,1], [0,2], [1,0], [1,1], [1,2], [2,0], [2,1], [2,2]]
我的最终目标是将它们作为列放入 pandas DataFrame 中,如下所示:
V | x | y
--+---+---
3 | 0 | 0
1 | 0 | 1
4 | 0 | 2
1 | 1 | 0
5 | 1 | 1
9 | 1 | 2
6 | 2 | 0
5 | 2 | 1
3 | 2 | 2
其中V是值,x是行位置(索引),y是列位置(索引)。
我认为我可以拼凑出一些东西,但我正在尝试找到更有效的方法,而不是摸索。例如,我知道可以使用类似于 x.reshape(x.size, 1)
的方法来获取值,并且可以尝试从 x.shape
创建索引列,但是似乎应该有更好的方法。
reshape
在常数时间内执行,并且为了创建索引,您只需要一个单独的for
循环。 - Saeidfor
循环吗?我知道reshape
已经达到了最高效率。 - Ellis Valentiner