python - 将二维数组中的元素更改为数组

标签 python numpy

在 numpy 中,我有一个二维数组,例如:

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

我想将此数组中的每个元素替换为一维数组,例如

1 -> [0 0 0 0 1]
2 -> [0 0 0 1 0]

等等

这会将元素转换为数组,并将整个 2d 数组转换为 3d 数组。 我尝试了几件事,但没有任何效果。这样做的正确方法应该是什么? 谢谢。

最佳答案

假设这是您的二维数组:

x=np.random.randint(1,3,size=(3,2))
print(x)

# [[2 2]
#  [1 2]
#  [2 1]]

创建数组:

y=np.array([[0,0,0,0,0],[0,0,0,0,1],[0,0,0,1,0]])

您可以将此数组视为一个映射:

0 --> [0,0,0,0,0]   # y[0] is mapped to [0,0,0,0,0]
1 --> [0,0,0,0,1]   # y[1]      ...     [0,0,0,0,1]
2 --> [0,0,0,1,0]   # y[2]      ...     [0,0,0,1,0]

然后你想要的数组由y[x]

给出
print(y[x])

# [[[0 0 0 1 0]
#   [0 0 0 1 0]]

#  [[0 0 0 0 1]
#   [0 0 0 1 0]]

#  [[0 0 0 1 0]
#   [0 0 0 0 1]]]

关于python - 将二维数组中的元素更改为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8108649/

相关文章:

Python,如何在多条(4)条曲线之间进行填充?

python - 在 tf.Estimator 设置中使用 tf.metrics.precision/recall 计算 F1 分数

python - 在 IPython 中释放巨大的 numpy 数组的内存

python - 我使用什么 scipy 统计测试来比较样本均值?

python - 对特征值和特征向量进行排序

python - 如何将 Python 变量打印为 XML 文件的属性值

python - 扩展 python 列表以包含其间的所有数字

python - 将缺失的类别追加到行中

python - 如何根据数组中值的相对大小将 numpy 数组排序为由单独列表指定的特定顺序

python - 当 Popen 错误时,子进程的 Popen 关闭在另一个线程中使用的 stdout/stderr 文件描述符