我正在做一个练习,我需要根据 3x3 矩阵中的出现次数将 0 到 5 的值组织到一个数组中。我正在使用 NumPy 来完成此任务。
给定以下 3x3 矩阵:
[[1 1 3]
[4 5 2]
[3 0 0]]
我想输出一个数组,其中每个元素代表从0到5的每个值出现的次数。对于上面的矩阵,所需的输出是:
[2,2,1,2,1,1]
我尝试过使用 np.array() 和 np.asarray(),并且考虑过使用 flatten() 函数,但它并没有帮助我实现目标。这是我尝试过的:
import numpy as np
m = np.matrix([[1,1,3], [4,5,2], [3,0,0]]) # Primary matrix, used for obtaining the values
print("Original Matrix: ") # Print original matrix
print(m)
print("Occurrences: ")
for i in range(6):
occur = (np.count_nonzero(m == i)) # Count the number of elements satisfying the condition
print(i, ":", occur)
尽管如此,我的输出是:
Occurrences:
0 : 2
1 : 2
2 : 1
3 : 2
4 : 1
5 : 1
如何使用 NumPy 有效地将这些计数组织到所需的输出数组中?