[英]Removing rows from subarrays of a numpy array based on a condition
我有以下 numpy 數組:
x = [[1,2],[3,4],[10,1]]
y = [[5,6],[1,8],[7,8]]
z = [[10,2],[9,10],[11,12]]
xyz = np.array([x,y,z])
我想在xyz
中的x
、 y
、 z
中的每一個的第一列中刪除值為 10 的行。 所以我想要的output:
array([[[ 1, 2],
[ 3, 4]],
[[ 5, 6],
[ 1, 8],
[ 7, 8]],
[[ 9, 10],
[11, 12]]], dtype=object)
我試過xyz[xyz[:,:,0]!=10]
但這並不能保留xyz
的 3 維性質。 我想我可以將第一個維度、切片和 append 迭代到一個新數組,但我正在尋找一個更簡單(可能是單線)的解決方案。
嘗試:
np.array([a[a[:,0]!=10] for a in xyz])
但是,由於尺寸不匹配,這不再是真正的 3D numpy 數組。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.