【发布时间】:2022-01-18 15:31:15
【问题描述】:
我遇到了一个简单的问题,我想根据表示数组中元素位置的掩码来分配值。例如array[*,1] = 0,但这段代码显然行不通。
经过一番思考,我想出了这个:
import numpy as np
a = np.random.normal(size=(5, 2))
print(a)
print(a.shape)
for i in np.arange(a.shape[0]):
a[i][1] = 0
print(a)
print(a.shape)
但显然,这个尴尬的循环并不是一种 Python 的方式。
那么,您能否分享一些在 Python 中执行此类操作的巧妙方法?
【问题讨论】:
-
如果您希望第一列的所有条目都为零,只需使用
a[:, 1] = 0对数组进行切片 -
如果要使用条件语句查看
np.where,可以根据a[np.where(condition)] = 0对数组进行索引 -
@Jonathan Weine 谢谢!我试图做到这一点,但忘记使用逗号,所以它不起作用。我想这应该是答案。
标签: python arrays python-3.x numpy