【问题标题】:Is there a function for changing all row values in a numpy array?是否有用于更改 numpy 数组中所有行值的函数?
【发布时间】:2022-09-28 03:49:59
【问题描述】:

我有一个 5 x 5 numpy 数组和 3 个值的列表

a = np.array[([[0,4,5,8,2],
 [2,3,4,1,3],
 [2,3,4,1,3],
 [2,3,4,1,3],
 [2,3,4,1,3]])

BC = np.array([0,3,4])

在这种情况下,BC 的每一行和每一列都必须为 0。在这种情况下,第一、第四和第五行和列。因此输出需要是

[0,0,0,0,0
0,3,4,0,0
0,3,4,0,0
0,0,0,0,0
0,0,0,0,0]

当然可以对矩阵中的每个位置执行 a[0,0] = 0,但我想使用 for 循环,因为原始矩阵是 12*12。谢谢你的帮助!

标签: python numpy matrix replace


【解决方案1】:

您只需对数组进行切片,然后将其分配为零,如下所示:

a = np.array[([[0,4,5,8,2],
 [2,3,4,1,3],
 [2,3,4,1,3],
 [2,3,4,1,3],
 [2,3,4,1,3]])

BC = np.array([0,3,4])

a[BC,:] = 0
a[:,BC] = 0

[BC,:] 松散地转换为“BC 和所有列中的行索引”。

【讨论】:

  • 啊,是的,这很容易,谢谢!!
猜你喜欢
  • 2016-07-23
  • 1970-01-01
  • 2021-08-06
  • 2017-06-25
  • 2011-10-29
  • 1970-01-01
  • 2021-08-26
  • 2013-05-12
  • 1970-01-01
相关资源
最近更新 更多