我有一個大數組,下面的小示例中顯示了其中的一部分。 在每個列表中,第一個數字是開始,第二個數字是結束 (所以有一個範圍),但每個元素是序列的一部分,每個序列從零開始。 。我想要做的是: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