【发布时间】:2020-06-22 17:18:13
【问题描述】:
我一直在使用 scipy 的 binned_statistic_2d 函数绘制一些数据的二维直方图,特别是通过设置 expand_binnumbers = True 返回数据所在 bin 的索引列表。它运行良好,直到今天。以下代码演示了我的问题:
import numpy as np
from scipy.stats import binned_statistic_2d as hist
# my data is two arrays of numbers
x = np.random.random((5,))
y = np.random.random((5,))
# I need to know which bin the values are in so I return the bin_idx
data = hist(x,y, bins = [2,2], statistic = 'count', values = None, expand_binnumbers = True)
bin_idx = data[3]
TypeError: 输入类型不支持 ufunc 'isfinite',并且根据强制转换规则 ''safe'' 无法安全地将输入强制转换为任何支持的类型
任何想法为什么这会突然停止工作?
【问题讨论】:
-
values参数是必需的。没有它,这个函数就没有多大意义。 -
@WarrenWeckesser scipy 文档告诉我,如果 count 是我的统计数据,则不使用值:docs.scipy.org/doc/scipy/reference/generated/...'count':计算其中的点数每个垃圾箱。这与未加权直方图相同。未引用值数组。我应该用什么代替它?
-
啊,你是对的。它看起来像是最近版本的 SciPy 中引入的一个错误。
-
您是否故意使
x和y具有(1, 5)的形状,而不仅仅是(5,)?我认为这个错误有一个简单的解决方法,但这些形状似乎会导致不同的问题。 -
@WarrenWeckesser 不,我只是想证明这个问题!我在我的实际项目中使用一维数组 - 我只是想用数据制作一些一维数组。写 (5,) 更正确吗?我会试试的。。
标签: python scipy histogram histogram2d scipy.stats