python - 将数组索引插入转置数组

标签 python arrays numpy

假设我有数组:

[[2,1,5,2], 
 [1,4,2,1],
 [4,5,5,7],
 [1,5,9,3]]

我试图将数组转置为 (16, 3) 形状,其中结果数组中的前两个元素是索引号,最后一个元素是值。例如:

[[0, 0, 2], [1, 0, 1], [2, 0, 5], [3, 0, 2], [0, 1, 4], ... .]

这可以通过 numpy 函数或类似函数实现吗?或者我必须用我自己的函数来做到这一点?

工作示例代码:

import numpy as np

src = np.array([[2,1,5,2],
                [1,4,2,1],
                [4,5,5,7],
                [1,5,9,3]])

dst = np.array([])


for x in range(src.shape[0]):
    for y in range(src.shape[1]):
        dst = np.append(dst, [[y, x, src[x][y]]])

print(dst.reshape(16,3))

最佳答案

我不知道 numpy 中是否有一个函数可以实现这一点,但您可以使用列表理解来轻松构建该数组:

import numpy as np

src = np.array([[2,1,5,2],
                [1,4,2,1],
                [4,5,5,7],
                [1,5,9,3]])

dst = np.array([ [y, x, src[x][y]] 
                 for x in range(src.shape[0]) 
                 for y in range(src.shape[1])])

print(dst.reshape(16,3))

希望这能有所帮助。

关于python - 将数组索引插入转置数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58015348/

相关文章:

python - 使用 Numpy 数组从结构返回数据

python - 通过引用另一个数据帧提取具有上限的行

C 程序数组需要的输入比应有的多

arrays - AngularJS 删除空值

Ruby - 从数组中打印一个值

python - 以人类可读的格式保存 numpy 数组的字典

Python:如何获取多维数组在某些索引位置的值?

python - Python 中的算术序列切片

python - PyCharm - venv 没有被激活

python - 如何将 numpy 数组转换为图像数据集?