gpt4 book ai didi

python - 使用 numpy 将向量转换为掩码矩阵

转载 作者:行者123 更新时间:2023-12-01 04:52:23 31 4
gpt4 key购买 nike

假设我们有以下向量:

v = np.array([4, 0, 1])

目标是创建 5 x 3 矩阵 M,如下所示:

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

每列中只有一个元素对于 v 中的相应索引等于 1。例如,由于 v[0] 为 4,则 M[4, 0] == 1,并且由于 v[2] 为 1那么M[1, 2] == 1

如何使用 scipy 和 numpy 在 Python 中构建这样的矩阵?在 MATLAB 中,您可以在一行中使用 sparsefull 函数来完成此操作。我不想使用 for 循环,因为我正在寻找它的矢量化实现。

最佳答案

如果您想要密集的数组输出,您可以使用两个整数数组来索引非零元素的行/列:

v = np.array([4, 0, 1])
x = np.zeros((5, 3), np.int)
x[v, np.arange(3)] = 1

print(x)
# [[0 1 0]
# [0 0 1]
# [0 0 0]
# [0 0 0]
# [1 0 0]]

关于python - 使用 numpy 将向量转换为掩码矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28143564/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com