R`summary`函数在python中最接近的等效项

问题描述 投票:1回答:2

是否有某种类型的助手可以在numpy内的多维数组中找到每个维的最小值,最大值(最好是标准偏差)?我正在寻找R中的summary()函数之类的东西。

我的数据本质上是一个巨大的2D数组(列表列表),其中子列表包含n个维值。例如。当前我有3维属性x,y,z的数据:

a = np.random.rand(100,3)

对于每个维度(x,y,z),我想知道最小,最大,均值和标准。

我知道一个人可以遍历轴并测量这些值,例如:

for i in range(a.shape[-1]):
  vals = a[:,i]
  print(np.min(vals), np.max(vals), np.std(vals))

我发现自己几乎每次有新数据集时都编写代码来执行此操作。任何加快此操作的方法都将非常有用!

python arrays numpy
2个回答
1
投票

没有熊猫:

from scipy import stats
import numpy as np

a = np.random.rand(100,3)
summary = stats.describe(a, axis = 0)

print(summary.mean)
print(summary.minmax)
...

使用熊猫:

import pandas as pd

summary_across_rows = pd.DataFrame(a).describe() # across axis=0
print(summary)
                0           1           2
count  100.000000  100.000000  100.000000
mean     0.495204    0.573827    0.476202
std      0.275131    0.246189    0.271626
min      0.005202    0.037195    0.023595
25%      0.295210    0.399358    0.258712
50%      0.512023    0.562181    0.417322
75%      0.710216    0.790970    0.712047
max      0.998371    0.997717    0.980840

Note: for the summary across the other dimension you need:
summary_across_columns = pd.DataFrame(a.T).describe() # across axis=1

-1
投票

这里有几个可根据轴(行或列)应用的numpy函数:

Numpy min

Numpy max

Numpy standard deviation

© www.soinside.com 2019 - 2024. All rights reserved.