鉴于我的数组
x = numpy.array([[1.0,2.0,3.0],[10.0,20.0,30.0]])
我可以使用
轻松获得每个元素的中位数np.median(x, axis=0)
#output: array([ 2., 20.])
但是当我增加一个数组的长度时,我不能做同样的事情
x = numpy.array([[1.0,2.0,3.0],[10.0,20.0,30.0, 40.0]])
输出应该是数组([2.,25。])
有没有办法让这样的数组得到中位数?
答案 0 :(得分:3)
[np.median(i) for i in x]
由于列表的长度不等,您无法广播它们。这就是为什么第一部作品,而不是第二部作品。
在第一种情况下,您的两个列表将被广播到3x2阵列,其中沿轴的中值是有意义的。现在这两个不等长的列表不能以这种方式广播。
答案 1 :(得分:0)
实际上,您没有数字数组,而是列表数组。所以中位数毫无意义。您应该迭代列表并一次计算一个中位数