Sha*_*han 3 python arrays numpy
我试图将numpy数组中的值设置为零,如果它等于列表中的任何数字.
让我们考虑以下数组
a = numpy.array([[1, 2, 3], [4, 8, 6], [7, 8, 9]])
Run Code Online (Sandbox Code Playgroud)
我想设置多个元素的a它在列表[1, 2, 8]来0.
结果应该是
[[0, 0, 3],
[4, 0, 6],
[7, 0, 9]]
Run Code Online (Sandbox Code Playgroud)
对于单个元素,它很简单
a[a == 1] = 0
Run Code Online (Sandbox Code Playgroud)
以上仅适用于单个整数.它如何适用于列表?
使用np.in1d您可以执行以下操作:
>>> a = np.array([[1, 2, 3], [4, 8, 6], [7, 8, 9]])
>>> np.in1d(a, [1, 2, 8])
array([ True, True, False, False, True, False, False, True, False], dtype=bool)
>>> a[np.in1d(a, [1, 2, 8]).reshape(a.shape)] = 0
>>> a
array([[0, 0, 3],
[4, 0, 6],
[7, 0, 9]])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1558 次 |
| 最近记录: |