R W*_*ser 1 python arrays numpy
我有一个 2D NumPy 数组。我想切出不等长度的列子集,并将它们放入一个数组中,其余值由 填充nan。也就是说在:
data = np.random.normal(size=(100,4))
Run Code Online (Sandbox Code Playgroud)
我想从头到尾建立索引[75, 33, 42, 54]。也就是说,行索引从 75 到第 0 列的末尾,第 33 行到第 1 列的末尾,依此类推。
我尝试过data[[slice(75,100),slice(33,100)],:],但没有成功。
您可以通过创建一个掩码来完成此操作,其中包含True您想要的索引np.nan,False否则:
import numpy as np
data = np.random.normal(size=(5,4))
b = np.array([0, 1, 2, 3])
mask = np.arange(len(data))[:, None] < b
data[mask] = np.nan
data
Run Code Online (Sandbox Code Playgroud)
输出:
 array([[-0.53306108,         nan,         nan,         nan],
       [ 1.32282687,  0.83204007,         nan,         nan],
       [-1.07143908,  0.12972517, -0.4783274 ,         nan],
       [ 0.39686727, -1.20532247, -2.17043218,  0.74859079],
       [ 1.82548696,  0.98669461, -1.17961517, -0.7813723 ]])
Run Code Online (Sandbox Code Playgroud)
        |   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           584 次  |  
        
|   最近记录:  |