使用长度不同的两个数组numpython
是否有一种方法可以修改下面的函数,以便它可以计算不同长度大小的数组。使用长度不同的两个数组numpython,python,arrays,function,numpy,size,Python,Arrays,Function,Numpy,Size,是否有一种方法可以修改下面的函数,以便它可以计算不同长度大小的数组。数字数组的长度为7,格式化的长度为5。下面的代码比较了格式化中的任何数字是否在两个值之间,如果是,则将两个值相加。因此,对于第一次计算,由于Numbers中没有任何元素介于0和2之间,因此结果将为0。指向代码的链接派生自: 代码: 下面是一种使用bincounts的方法。请注意,您的x和l都搞砸了,我记得您可以/应该使用数字化: # Formating goes here x = np.sort(Formating); # d
数字
数组的长度为7,格式化
的长度为5。下面的代码比较了格式化
中的任何数字是否在两个值之间,如果是,则将两个值相加。因此,对于第一次计算,由于Numbers
中没有任何元素介于0和2之间,因此结果将为0。指向代码的链接派生自:
代码:
下面是一种使用bincounts
的方法。请注意,您的x
和l
都搞砸了,我记得您可以/应该使用数字化
:
# Formating goes here
x = np.sort(Formating);
# digitize
l = np.digitize(Numbers, x)
# output:
np.bincount(l, weights=Numbers)
输出:
那个代码怎么了?@hpaulj它不运行:-)。应该是N=Numbers[:,None]。重复(4,1)。T
。也就是说,x
和l
是多余的,而且是错误的!而所有这些结果
的东西似乎都被过度使用了<代码>(掩码*数字[None,:])。总和(轴=1)
工作正常。也就是说,OP提出的这一系列问题看起来像是XY问题。x
和l
来自不同的解决方案,mask
是我提出的。N
中5
的使用是从格式化
有6个术语时遗留下来的;显然(?)如果格式化
更改,该值也应该更改。我建议使用np.ma
作为可视化使用mask
的一种方法np.ma.sum
会处理0填充。是否有办法将输出修改为介于设置的边界之间,并导致[0 7 30 0]
[ 0 7 30 0]
# Formating goes here
x = np.sort(Formating);
# digitize
l = np.digitize(Numbers, x)
# output:
np.bincount(l, weights=Numbers)
array([ 0., 0., 7., 30., 0., 20.])