我想做一些类似于此处NumPy数组的操作,更改不在索引列表中的值,但不完全相同。
考虑一个numpy
数组:
> a = np.array([0.2, 5.6, 88, 12, 1.3, 6, 8.9])
我知道我可以通过索引列表访问其元素,例如:
> indxs = [1, 2, 5]
> a[indxs]
array([ 5.6, 88. , 6. ])
但是我还需要访问那些 不在indxs
列表中的元素。天真地,这是:
> a[not in indxs]
> array([0.2, 12, 1.3, 8.9])
正确的方法是什么?
In [170]: a = np.array([0.2, 5.6, 88, 12, 1.3, 6, 8.9])
In [171]: idx=[1,2,5]
In [172]: a[idx]
Out[172]: array([ 5.6, 88. , 6. ])
In [173]: np.delete(a,idx)
Out[173]: array([ 0.2, 12. , 1.3, 8.9])
delete
比实际需要更广泛,根据输入使用不同的策略。我认为在这种情况下,它使用布尔掩码方法(时序应相似)。
In [175]: mask=np.ones_like(a, bool)
In [176]: mask
Out[176]: array([ True, True, True, True, True, True, True], dtype=bool)
In [177]: mask[idx]=False
In [178]: mask
Out[178]: array([ True, False, False, True, True, False, True], dtype=bool)
In [179]: a[mask]
Out[179]: array([ 0.2, 12. , 1.3, 8.9])
问题内容: 在Python中,我们可以使用来获取数组中值的索引。 但是,当我尝试执行NumPy数组时: 我得到: AttributeError:“ numpy.ndarray”对象没有属性“ index” 我如何在NumPy数组上执行此操作? 问题答案: 使用来获得,其中一个给定的条件是指数。 例子: 对于称为的2D : 对于一维数组: 请注意,这也适用于像条件,,等等… 您也可以使用方法创建的子
问题内容: 我有一个像这样的NumPy数组: 我知道我可以使用例如花式索引来替换位于位置的值: 但是,如何替换不在的位置的值?像下面这样吗? 问题答案: 我不知道这样做的干净方法: 当然,如果您更喜欢使用numpy数据类型,则可以使用-输出不会有任何差异。确实,这只是一个偏好问题。
问题内容: 如果您在python中有一个列表,并且想要将索引1、2和5的元素提取到新列表中,您将如何做? 这是我的做法,但我并不十分满意: 有没有更好的办法? 更一般而言,给定一个索引元组,即使使用重复,您将如何使用该元组从列表中提取相应的元素(例如,元组产生)。 问题答案: 也许使用这个:
问题内容: 我正在尝试获取numpy数组中所有重复元素的索引,但是我目前发现的解决方案对于大型(> 20000个元素)输入数组(大约需要9秒钟的时间),实际上效率很低。这个想法很简单: 是一个时间戳()的numpy数组,我们要从中提取重复时间戳的索引 是一个numpy数组,其中包含在中重复的所有时间戳 是一个django QuerySet(可以轻松转换为列表),其中包含一些Record对象。我们要
问题内容: 有没有办法一次获取NumPy数组中几个元素的索引? 例如 我想找到in中每个元素的索引,即:。 我发现我使用的解决方案有点冗长: 输出: 问题答案: 您可以使用和(或为此): 这对于您的示例数组很好用,但是通常返回的索引数组不遵循中的值顺序。这可能是个问题,具体取决于您下一步要做什么。 在这种情况下,更好的答案是一个@Jaime给出了这里,使用: 返回值在中出现的索引。例如:
问题内容: 这是一个简单的问题,但请说我有一个MxN矩阵。我要做的就是提取特定的列并将其存储在另一个numpy数组中,但是我得到了无效的语法错误。这是代码: 似乎上述行就足够了,但我想不是。我环顾四周,但找不到关于此特定场景的任何语法明智的方法。 问题答案: 我假设你想要的列和? 要一次选择多个列,请使用 要一次选择一个,请使用 带有名称: 您可以从…获得名字。