Python 即使没有结果,如何计算特定值?
我试图创建一个包含10个元素的数组,其中包含所有10个可能选项的计数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个唯
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数组
还是dictdict(zip(unique,count))
如果我不理解这个问题,请原谅。但目标是将计数存储在dict中,然后将值插入计数数组。number\u count
的值始终在0到9之间?您是在寻找数组count\u数组
还是dictdict(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),可能有更好的方法。