簡體   English   中英

如何計算2D數組(Python)中1D數組的數量?

[英]How to count the number of 1D arrays in a 2D array (Python)?

如果我有一個numpy 2D數組,請說:

a = [[1, 2, 3], [2, 3, 4], [3, 4, 5], [1, 2, 3]]

如何計算a中[1、2、3]的實例數? (在這種情況下,我要尋找的答案是2)

由於您說的是一個numpy數組,而不是列表,因此您可以執行以下操作:

>>> a = np.array([[1, 2, 3], [2, 3, 4], [3, 4, 5], [1, 2, 3]])
>>> sum((a == [1,2,3]).all(1))
2

(a == [1,2,3]).all(1)為您提供一個布爾數組或行中所有值都與[1,2,3]匹配的array([ True, False, False, True], dtype=bool)array([ True, False, False, True], dtype=bool) ,總和就是其中所有True值的計數

如果想要所有數組的計數,可以使用unique

import numpy as np

a = np.array([[1, 2, 3], [2, 3, 4], [3, 4, 5], [1, 2, 3]])
uniques, counts = np.unique(a, return_counts=True, axis=0)
print([(unique, count) for unique, count in zip(uniques, counts)])

產量

[(array([1, 2, 3]), 2), (array([2, 3, 4]), 1), (array([3, 4, 5]), 1)]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM