Python 即使没有结果,如何计算特定值?

Python 即使没有结果,如何计算特定值?,python,numpy,Python,Numpy,我试图创建一个包含10个元素的数组,其中包含所有10个可能选项的计数 number_count = np.array([0,1,2,3,4,5,6,0,0,0]) unique, count = np.unique(number_count, return_counts=True) dict(zip(unique,count)) count_array = count /10 (由于值来自txt文件,而不是硬编码,因此更改了number\u count数组) 我计算元素的方式是返回所有7个唯

我试图创建一个包含10个元素的数组,其中包含所有10个可能选项的计数

number_count = np.array([0,1,2,3,4,5,6,0,0,0])

unique, count = np.unique(number_count, return_counts=True)
dict(zip(unique,count))
count_array = count /10
(由于值来自txt文件,而不是硬编码,因此更改了
number\u count
数组)

我计算元素的方式是返回所有7个唯一出现的值,但我试图包括(0,1,2,3,4,5,6,7,8,9)的选项,即使某个特定值出现0次


我想知道是否有一种方法可以使用
numpy.unique
来计算特定的唯一值,而不仅仅是唯一出现的值,或者我更适合使用其他形式的计数?

您可以创建一个长度为所需的零数组,只需添加由
np.unique的返回值索引的计数即可

import numpy as np

number_count = np.array([0,1,2,3,4,5,9,0,0,0,1])

counts = np.zeros(10, dtype=int)

unique, count = np.unique(number_count, return_counts=True)
counts[unique] += count

counts
# array([4, 2, 1, 1, 1, 1, 0, 0, 0, 1])
这避免了使用临时字典。如果您确实需要dict,您可以使用以下命令从列表中创建它:

dict(enumerate(counts))
# {0: 4, 1: 2, 2: 1, 3: 1, 4: 1, 5: 1, 6: 0, 7: 0, 8: 0, 9: 1}

您可以创建一个长度为所需的零数组,只需添加由
np.unique的返回值索引的计数即可

import numpy as np

number_count = np.array([0,1,2,3,4,5,9,0,0,0,1])

counts = np.zeros(10, dtype=int)

unique, count = np.unique(number_count, return_counts=True)
counts[unique] += count

counts
# array([4, 2, 1, 1, 1, 1, 0, 0, 0, 1])
这避免了使用临时字典。如果您确实需要dict,您可以使用以下命令从列表中创建它:

dict(enumerate(counts))
# {0: 4, 1: 2, 2: 1, 3: 1, 4: 1, 5: 1, 6: 0, 7: 0, 8: 0, 9: 1}

您正在查看数组
count\u数组
还是dict
dict(zip(unique,count))
如果我不理解这个问题,请原谅。但目标是将计数存储在dict中,然后将值插入计数数组。
number\u count
的值始终在0到9之间?您是在寻找数组
count\u数组
还是dict
dict(zip(unique,count))
如果我不理解这个问题,请原谅。但目标是将计数存储在dict中,然后将值插入计数数组。
number\u count
的值始终在0到9之间?我的错。但是,如果他想使用超过10的值,这个黑客可能很有用
np.zeros(np.max(number\u count))
但是它的内存效率很低(我刚开始学习NumPy),可能有更好的方法。我的坏习惯。但是,如果他想使用超过10的值,这个黑客可能很有用
np.zero(np.max(number\u count))
但是它的内存效率很低(我刚刚开始学习NumPy),可能有更好的方法。