[英]Slice numpy array into groups
我們有以下 numpy 數組:
A = [[0,1,2,3],
[2,3,4,5],
[1,2,3,4],
[1,1,1,1],
[2,2,2,2],
[3,3,3,3],
[0,1,2,3],
[2,3,4,5],
[1,2,3,4],
[10,10,10,10],
[20,20,20,20],
[30,30,30,30]]
我想創建兩個新的 arrays:
B = [[0,1,2,3],
[2,3,4,5],
[1,2,3,4],
[0,1,2,3],
[2,3,4,5],
[1,2,3,4]]
和
C = [[1,1,1,1],
[2,2,2,2],
[3,3,3,3],
[10,10,10,10],
[20,20,20,20],
[30,30,30,30]]
基本上我想將數組 A 拆分為兩個新的 arrays ,其中 B 采用 3 行組,數組 C 采用下一組 3 行。
可能有許多不同的方法可以解決這個問題,這里有一個:
import numpy as np
A = np.array([[0,1,2,3],
[2,3,4,5],
[1,2,3,4],
[1,1,1,1],
[2,2,2,2],
[3,3,3,3],
[0,1,2,3],
[2,3,4,5],
[1,2,3,4],
[10,10,10,10],
[20,20,20,20],
[30,30,30,30]])
indices = np.reshape(np.arange(A.shape[0]),(-1,3))
B = A[indices[::2].flatten()]
C = A[indices[1::2].flatten()]
我們試試看:
tmp = A.reshape(-1, 3, A.shape[1])
B = tmp[::2]
C = tmp[1::2]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.