当前位置: 首页 > 面试题库 >

更改不在索引列表中的NumPy数组的值

谯英彦
2023-03-14
问题内容

我有一个像这样的NumPy数组:

a = np.arange(30)

我知道我可以indices=[2,3,4]使用例如花式索引来替换位于位置的值:

a[indices] = 999

但是,如何替换不在的位置的值indices?像下面这样吗?

a[ not in indices ] = 888

问题答案:

我不知道这样做的干净方法:

mask = np.ones(a.shape,dtype=bool) #np.ones_like(a,dtype=bool)
mask[indices] = False
a[~mask] = 999
a[mask] = 888

当然,如果您更喜欢使用numpy数据类型,则可以使用dtype=np.bool_-输出不会有任何差异。确实,这只是一个偏好问题。



 类似资料:
  • 问题内容: 我想做一些类似于此处NumPy数组的操作,更改不在索引列表中的值,但不完全相同。 考虑一个数组: 我知道我可以通过索引列表访问其元素,例如: 但是我还需要访问那些 不在列表中的元素。天真地,这是: 正确的方法是什么? 问题答案: In [170]: a = np.array([0.2, 5.6, 88, 12, 1.3, 6, 8.9]) In [171]: idx=[1,2,5] I

  • 问题内容: 我有一个奇怪的情况。 我有一个2D Numpy数组,x: 我有2个索引器-一个索引为行,一个索引为列。为了索引X,我必须执行以下操作: 不仅仅是: (失败:错误,无法通过(2,)广播(20,)) 我希望能够使用广播在一行中建立索引,因为这样可以使代码保持干净和可读性…而且,我对幕后的python并不太了解,但是据我了解它,它在一行中应该更快(我将使用相当大的数组)。 测试用例: 问题答

  • 问题内容: 在Python中,我们可以使用来获取数组中值的索引。 但是,当我尝试执行NumPy数组时: 我得到: AttributeError:“ numpy.ndarray”对象没有属性“ index” 我如何在NumPy数组上执行此操作? 问题答案: 使用来获得,其中一个给定的条件是指数。 例子: 对于称为的2D : 对于一维数组: 请注意,这也适用于像条件,,等等… 您也可以使用方法创建的子

  • 问题内容: 从Numpy的教程中,可以使用整数对轴进行索引,例如用于列,用于行,但是我不明白为什么用这种方式对它们进行索引?当处理多维数组时,如何计算每个轴的索引? 问题答案: 根据定义,维的轴号是该维在数组内的索引。它也是在索引编制过程中用于访问该尺寸的位置。 例如,如果2D数组的形状为(5,6),则最多可以访问。因此,轴0是第一维(“行”),轴1是第二维(“列”)。在较高的尺寸中,“行”和“列

  • 问题内容: 现在说我有一个numpy数组,定义为 现在,我想要一个包含缺失值的所有索引的列表,在这种情况下。 有什么办法可以做到吗? 问题答案: np.isnan与np.argwhere结合 输出:

  • 问题内容: 假设我有 有没有一种有效的numpy方法来查找值变化的每个索引?例如,我想要一些结果, 如果某些numpy例程无法做到这一点,那么在python中执行此操作的快速方法是什么?推荐给一些很好的numpy教程对我来说也很有用,因为我是个numpy初学者。 问题答案: 您可以通过将每个元素与其相邻元素进行比较来以numpy的形式获得此功能; 要获取索引,请使用“ where”功能 在这里,您