Jam*_*ner 1 python arrays indexing numpy slice
我想分配0给二维数组的不同长度切片。
例子:
import numpy as np
arr = np.array([[1,2,3,4],
[1,2,3,4],
[1,2,3,4],
[1,2,3,4]])
idxs = np.array([0,1,2,0])
Run Code Online (Sandbox Code Playgroud)
鉴于上述数组arr和索引idxs,您如何分配不同长度的切片。结果是:
arr = np.array([[0,2,3,4],
[0,0,3,4],
[0,0,0,4],
[0,2,3,4]])
Run Code Online (Sandbox Code Playgroud)
这些不起作用
slices = np.array([np.arange(i) for i in idxs])
arr[slices] = 0
Run Code Online (Sandbox Code Playgroud)
arr[:, :idxs] = 0
Run Code Online (Sandbox Code Playgroud)
您可以使用广播比较来生成掩码,并相应地索引到arr:
arr[np.arange(arr.shape[1]) <= idxs[:, None]] = 0
Run Code Online (Sandbox Code Playgroud)
print(arr)
array([[0, 2, 3, 4],
[0, 0, 3, 4],
[0, 0, 0, 4],
[0, 2, 3, 4]])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
838 次 |
| 最近记录: |