【问题标题】:Creating a array of 1s and 0s using another array使用另一个数组创建一个由 1 和 0 组成的数组
【发布时间】:2021-03-06 15:53:09
【问题描述】:

所以我有两个数组(行和列)row = [0, 1, 0, 2, 0, 1, 3, 1, 3, 1, 2, 4]column = [0, 0, 1, 1, 2, 2, 2, 3, 3, 0, 1, 4]

我想使用行和列数组将值“1”插入另一个二维数组(向量)

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.]]

所以我想要的输出是:

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.]]

对不起,如果我的解释不好,这是我第一次使用 python 和 Stackoverflow。

【问题讨论】:

  • 这是什么逻辑?向量是 5*5 但行、列是 12*12
  • 这背后的逻辑是什么?
  • @Epsi95 我正在从这些值创建一个向量,因此我需要使用行和列来显示添加 1 的位置。

标签: python arrays multidimensional-array


【解决方案1】:

只需使用rowcolumn 向量作为索引:

>>> vectors[row, column] = 1
>>> vectors
array([[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.]])

【讨论】:

  • 哦,哇,就是这么简单,感谢您的帮助;我需要提高我的 Python 技能。
【解决方案2】:

我想你可以试试这个:

for r, c in zip(row, column):
    vectors[r][c] = 1

【讨论】:

  • 没问题!实际上,我也从@Cyttorak 的回答中学到了一些东西,所以这是一个奖励。
猜你喜欢
  • 2022-01-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-14
  • 2012-12-16
  • 2017-05-06
相关资源
最近更新 更多