![](/img/trans.png)
[英]Counting non-zero elements within each row and within each column of a 2D NumPy array
[英]NumPy - Finding and printing non-zero elements in each column of a n-d array
假設我有以下 Numpy nd 數組:
array([[['a',0,0,0],
[0,'b','c',0],
['e','d',0,0]]])
現在我想定義元素的“雙重連接”,如下所示:
('a','e')
('e','a')
('b','d')
('d','b')
我試圖提出迭代所有列的解決方案,但沒有奏效。有人可以分享一些關於此的提示嗎?
您可以通過以下命令重新創建原始數組
array = np.array([['a',0,0,0],
[0,'b','c',0],
['e','d',0,0],dtype=object)
您可以計算每列有多少個非零元素。 您選擇具有兩個非零元素的列,重復它們並每隔一列反轉:
pairs = np.repeat(array[(array[:, (array != 0).sum(axis=0) == 2]).nonzero()].reshape((2, -1)).T, 2, axis=0)
pairs[1::2] = pairs[1::2, ::-1]
如果你想將這些轉換為你想要的輸出中的元組,你可以做一個列表理解:
output = [tuple(pair) for pair in pairs]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.