Python中如何给numpy.histogram返回的短数组添加np.nan?
np.histogram的返回值默认就会有长度差:第一个数组是分箱计数,长度等于你设置的分箱数(这里设置了10个分箱所以长度为10),第二个数组是分箱边界,N个分箱对应N+1个边界所以长度为11,属于正常设计。你要给短数组补np.nan对齐的话可以用以下方法:
import numpy as np # 你的原有逻辑,mu、sigma替换成你自己的参数即可 mu, sigma = 2, 0.2 s = np.random.normal(mu, sigma, 5000) arrHist = np.histogram(s, 10) # 拆分返回的两个数组 counts, bin_edges = arrHist # 取两个数组的最大长度作为对齐目标 max_length = max(len(counts), len(bin_edges)) # 给短数组末尾补对应数量的np.nan counts_padded = np.append(counts, [np.nan] * (max_length - len(counts))) bin_edges_padded = np.append(bin_edges, [np.nan] * (max_length - len(bin_edges))) # 如果需要保持原来的元组结构可以重新组装 new_arrHist = (counts_padded, bin_edges_padded) # 验证结果 print(new_arrHist)
运行后得到的new_arrHist里两个数组长度就完全一致了。
内容的提问来源于stack exchange,提问作者lo7
相关产品推荐
相关产品推荐

