【问题标题】:Replacing an element of a 2D matrix with a random number in python在python中用随机数替换二维矩阵的元素
【发布时间】:2022-01-24 15:28:57
【问题描述】:

我有一个二维矩阵A=[[27 1 63 66 79],[55 20 40 26 68],[42 64 96 27 14]]。我想用随机数替换大于 20 的每个元素。每次检测到大于 20 的条目时,有没有办法用新的随机数替换它。我不想使用 for 循环并遍历每个条目。 我正在使用这个A[A>20]= np.random.randint(0,9)。然而,在这种技术中,每个大于 20 的条目都被替换为一个固定的随机数。

【问题讨论】:

  • 你的“数组”是什么?列表列表还是 numpy 数组?
  • 您是否介意将逗号添加到您的列表中,以便它们成为实际列表
  • 不妨看看numpy.vectorize
  • 'A' 是一个 numpy 数组。

标签: python arrays python-3.x random


【解决方案1】:

假设你有一个 numpy 数组。你需要生成一个相同形状的随机数组。

A = np.where(A>20, np.random.randint(0,9, size=A.shape), A)

示例输出:

array([[0, 8, 3, 0, 2],
       [1, 4, 7, 5, 1],
       [5, 4, 8, 7, 6]])

【讨论】:

  • 这很好用!
猜你喜欢
  • 2014-05-05
  • 2023-04-08
  • 2014-12-07
  • 1970-01-01
  • 2020-08-02
  • 2012-11-19
  • 2021-08-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多