在Python中使用dtype = int64转换数组

时间:2018-10-22 17:05:31

标签: python python-3.x numpy

我有此代码:

 import numpy as np
 def buckets(listInput, intBuckets):
     x = np.linspace(np.min(listInput),np.max(listInput), intBuckets)
     indices = np.digitize(listInput, x)
     index = np.unique(indices, return_counts = True)
     return x, index

我正在编写一个用于对数字组进行计数以创建直方图的函数。 listInput取整数列表,而intBuckets是直方图所需的存储桶数。该代码不返回任何错误。问题出在输出上。测试代码时,我收到dtype = int64格式的数组之一。这是测试代码的示例:

#Test
listTemp = np.random.randint(0,20,10)
listX, listY = buckets(listTemp,5)  
print(listTemp)  
print(listX)
print(listY)

print(sum(listY))

[17  7 13 19 15  0 15  2  5 13]
[ 0.    4.75  9.5  14.25 19.  ]
[array([1, 2, 3, 4, 5], dtype=int64), array([2, 2, 2, 3, 1], dtype=int64)]
[3 4 5 7 6]

listY(与np.unique对应,将存储桶的编号分组)似乎是问题所在。根据{{​​3}}的建议,我尝试在代码中使用np.array,但收到了两个数组,而不是我期望的那样。另外,在添加sum(listY)中的值时,它不会返回正确的数字。当我仅使用测试编号运行函数(xindicesindex变量)中的行时,就会收到正确的结果。有可以转换此数组的python函数吗?

0 个答案:

没有答案