我有一个大数组,下面的小示例中显示了其中的一部分。 在每个列表中,第一个数字是开始,第二个数字是结束 (所以有一个范围),但每个元素是序列的一部分,每个序列从零开始。 。我想要做的是:numpy array中的拆分元素
小例子:
array([[ 469, 1300],
[ 171, 1440],
[ 187, 1564],
[ 204, 1740],
[ 40, 1363],
[ 56, 1457],
[ 132, 606],
[1175, 2096],
[ 484, 2839],
[ 132, 4572],
[ 166, 1693],
[ 69, 3300],
[ 142, 1003],
[2118, 2118],
[ 715, 1687],
[ 301, 1006],
[ 48, 2142],
[ 63, 330],
[ 479, 2411]], dtype=uint32)
我想从其中索引的每个序列的开头取0 (不包括在范围内) 开始前,直到-20每个范围。
我试过这段代码:
cds = np.column_stack([cdspos[:, 0] - cdspos[:, 0], cdspos[:, 0] - 20])
,但它给出了这样的错误:
y = _nx.arange(0, num, dtype=dt)
MemoryError
但我试试这个:
cds = np.column_stack([cdspos[:, 0] - 100, cdspos[:, 0] - 20])
它完美的作品。问题是我在起点之前没有相同的范围 (全部不是100)。
所以,我想要得到一个更小的范围(列表),像这样:(0)到 (start-20)。例如第一个元素会是这样:
[ 0, 449]
我也试过
cds = np.column_stack([0, cdspos[:, 0] - 20])
,但没有奏效。
的小例子,我找的输出会是这样:
array([[0, 449],
[0, 151],
[0, 167],
[0, 184],
[0, 20],
[0, 36],
[0, 112],
[0, 1155],
[0, 464],
[0, 112],
[0, 146],
[0, 49],
[0, 122],
[0, 2098],
[0, 695],
[0, 281],
[0, 28],
[0, 43],
[0, 459]], dtype=uint32)
你们怎么知道该怎么做?
我想这和完美工作:CDS1 = np.column_stack([np.zeros(LEN(cdspos),D类= “UINT32”),cdspos [: ,1]]) – user3631908