【问题标题】:Indexing a 2d array with another 2d array用另一个二维数组索引一个二维数组
【发布时间】:2021-06-04 22:23:41
【问题描述】:

我有一个数组lines = np.array[[0,0],[0,1],[1,0],[1,2],[2,0],[2,1],[2,3],[3,1],[3,3],[0,1],[1,2],[4,4]] 和另一个 numpy zeros 数组 vectors = [[0. 0. 0. 0. 0.],[0. 0. 0. 0. 0.],[0. 0. 0. 0. 0.],[0. 0. 0. 0. 0.],[0. 0. 0. 0. 0.]] 我想使用第一个数组(行)中的元素将“1”插入到第二个数组(向量)中。

所以我想要的输出是:

vectors = 
[[1. 1. 1. 0. 0.],
[1. 0. 1. 1. 0.],
[0. 1. 0. 0. 0.],
[0. 0. 1. 1. 0.],
[0. 0. 0. 0. 1.]]

注意:考虑到行数组中的所有第二个数字都用于索引向量数组中的特定数组,第一个数字是放置“1”的位置。例如,lines[2] = [1,0],lines[2][1] = 0 和 lines[2][0] = 1 所以你将使用 0 来索引向量数组中的第 0 个数组并放置第一个位置的“1”(索引 1)。

抱歉,如果我解释得不好,我是 python 和 StackOverflow 的新手。

【问题讨论】:

    标签: python arrays numpy multidimensional-array indexing


    【解决方案1】:

    使用: vectors[lines[:, 1], lines[:, 0]] = 1

    解释: lines[:, n] 索引二维线数组的第 n 列。因此,根据您的规范,lines[:, 1](第一列)包含vectors 数组的行号。然后我们使用lines[:, 0](即第零列中的值)替换vectors数组中的适当列。

    【讨论】:

    • 好的,这对我来说有点太复杂了,但是感谢您的帮助。我把它整理好了。我需要提高我的 Python 技能。
    猜你喜欢
    • 2012-04-10
    • 2022-12-07
    • 2021-03-03
    • 2021-11-26
    • 2021-12-31
    • 1970-01-01
    • 2019-05-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多