python可变数量参数的平均值,python:可变长度2矩阵的平均值

这篇博客讨论了如何在Python中处理可变长度的2D数组,并找到每一列的平均值。作者提到了使用numpy的np.mean()函数时遇到的问题,即它期望数组具有相同的维度。为了解决这个问题,作者提供了两种解决方案:一种是使用Pandas的DataFrame对象计算平均值,另一种是通过填充NaN并使用numpy的nanmean()函数。这两种方法都能够正确计算出不规则2D数组的列平均值。
摘要由CSDN通过智能技术生成

考虑以下可变长度的2D数组

[

[1, 2, 3],

[4, 5],

[6, 7, 8, 9]

]

如何找到列中变量的平均值?

我想要像[(1 4 6)/ 3,(2 5 7)/ 3,(3 8)/ 2,9 / 1这样的东西

所以最终的结果是[3.667,4.667,5.5,9]

这可能是使用numpy吗?

我试过np.mean(x,axis = 0),但numpy期望相同维度的数组.

现在,我正在弹出每列的元素并找到平均值.有没有更好的方法来实现结果?

解决方法:

你可以使用熊猫:

import pandas as pd

a = [[1, 2, 3],

[4, 5],

[6, 7, 8, 9]]

df = pd.DataFrame(a)

# 0 1 2 3

# 0 1 2 3 NaN

# 1 4 5 NaN NaN

# 2 6 7 8 9

df.mean()

# 0 3.666667

# 1 4.666667

# 2 5.500000

# 3 9.000000

# dtype: float64

这是另一种只使用numpy的解决方案:

import numpy as np

nrows = len(a)

ncols = max(len(row) for row in a)

arr = np.zeros((nrows, ncols))

arr.fill(np.nan)

for jrow, row in enumerate(a):

for jcol, col in enumerate(row):

arr[jrow, jcol] = col

print np.nanmean(arr, axis=0)

# array([ 3.66666667, 4.66666667, 5.5 , 9. ])

标签:python,arrays,numpy

来源: https://codeday.me/bug/20190722/1502199.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值