03_Numpy的数组各行,各列的求和,平均值,最大值,最小值,最大最小值差,标准差,方差等的计算

Numpy的数组各行,各列的求和,平均值,最大值,最小值,最大最小值差,标准差,方差等的计算

函数numnumpy.sum()可以算出ndarray数组中所有元素的和,函数numpy.mean()可以算出ndarray数组中所有元素的平均值。
默认的情况下是算出数组中所有元素的和与平均值,但是也可以使用参数axis,对行或列进行计算。

在此,对一下的内容进行说明。

  • numpy.sum() 求和
  • numpy.mean() 平均值
  • numpy.min() 最小值/numpy.max() 最大值
  • numpy.ptp() 最大值与最小值的差(最大值-最小值)
  • numpy.std() 标准差/numpy.var() 方差
  • 多维数组的参数axis

首先,准备一个3x4的数组。

import numpy as np

a = np.arange(12).reshape(3, 4)
print(a.shape)
print(a)
# (3, 4)
# [[ 0  1  2  3]
#  [ 4  5  6  7]
#  [ 8  9 10 11]]

numpy.sum() 求和


把刚刚生成的数组a放入函数np.sum()中,返回得到数组中所有元素的和。

print(np.sum(a))
# 66

参数axis=0时,返回数组各列的和,参数axis=1时,返回数组各行的和。

print(np.sum(a, axis=0))
print(np.sum(a, axis=1))
# [12 15 18 21]
# [ 6 22 38]

其实不使用numpy的函数也是可以的,因为ndarndarray数组中也有相同的求和方法sum()。并且也可以通过参数axis指定行或列。

print(a.sum())
# 66

print(a.sum(axis=0))
print(a.sum(axis=1))
# [12 15 18 21]
# [ 6 22 38]

numpy.mean() 平均值


numpy.mean()的使用方法与numpy.sum()相同,也可以通过参数axis指定行或列。

print(np.mean(a))
# 5.5

print(np.mean(a, axis=0))
print(np.mean(a, axis=1))
# [ 4.  5.  6.  7.]
# [ 1.5  5.5  9.5]

和sum()一样,ndarray数组中也有相同的求平均值的方法mean()。并且也可以通过参数axis指定行或列。

print(a.mean())
# 5.5

print(a.mean(axis=0))
print(a.mean(axis=1))
# [ 4.  5.  6.  7.]
# [ 1.5  5.5  9.5]

numpy.min() 最小值/numpy.max() 最大值


在分别使用numpy.min()和numpy.max()求数组中元素的最小值与最大值的时候,也可以通过参数axis指定行或列。并且,为了使用方便,还可以直接使用函数numpy.amin()和numpy.amax()进行计算,所得到的结果是一样的。

print(np.min(a))
print(np.min(a, axis=0))
print (np.amin(a,0))
# 0
# [0 1 2 3]
# [0 1 2 3]

print(a.max())
print(a.max(axis=1))
print(np.amax(a,1))
# 11
# [ 3  7 11]
# [ 3  7 11]

numpy.ptp() 最大值与最小值的差(最大值-最小值)


函数numpy.ptp()可以返回得到数组中最大值与最小值之间的差(最大值-最小值),也可以通过参数axis指定行或列。

print(np.ptp(a))
#11

print(np.ptp(a, axis=1))
#[3 3 3]

print(np.ptp(a, axis=0))
#[8 8 8 8]

numpy.std() 标准差/numpy.var() 方差


求标准差和方差的函数分别为numpy.std()和numpy.var()。使用方法和之前相同,也可以通过参数axis指定行或列。

print(np.std(a))
#3.452052529534663

print(np.var(a))
#11.916666666666666

多维数组的参数axis


2维数组时,参数axis=0或1时,分别指定行或列进行计算。下面对多维数组参数axis的使用方法进行简单的说明介绍。
在这里插入图片描述
2维数组时的参数axis。

在这里插入图片描述
3维数组时的参数axis。

首先,准备一个2x3x4的数组b。

b = np.arange(24).reshape(2, 3, 4)
print(b.shape)
print(b)
# (2, 3, 4)
# [[[ 0  1  2  3]
#   [ 4  5  6  7]
#   [ 8  9 10 11]]
#
#  [[12 13 14 15]
#   [16 17 18 19]
#   [20 21 22 23]]]

当axis=0时,结果维3x4的数组。

print(b.sum(axis=0))
# [[12 14 16 18]
#  [20 22 24 26]
#  [28 30 32 34]]

当axis=1时,结果维2x4的数组。

print(b.sum(axis=1))
# [[12 15 18 21]
#  [48 51 54 57]]

当axis=2时,结果维2x3的数组。

print(b.sum(axis=2))
# [[ 6 22 38]
#  [54 70 86]]

asix还可以进行双数值的指定。结果如下。

print(b.sum(axis=(0, 1)))
# [60 66 72 78]

print(b.sum(axis=(0, 2)))
# [ 60  92 124]

print(b.sum(axis=(1, 2)))
# [ 66 210]
在Jupyter Notebook中,你可以使用Pandas库来处理Iris数据集。首先,你需要导入必要的库,如pandas和numpy。然后按照以下步骤操作: 1. **加载数据**: 使用`pandas.read_csv()`函数从CSV文件(Iris数据集通常存储为.csv格式)中读取数据,假设文件名为`iris.csv`: ```python import pandas as pd iris_df = pd.read_csv('iris.csv') ``` 2. **获取花萼长度数据**: 选择`sepal_length`: ```python sepal_length = iris_df['sepal_length'] ``` 3. **数据排序**: 对花萼长度进行升序排: ```python sorted_sepal_length = sepal_length.sort_values() ``` 4. **去重**: 如果有重复值,可以使用`drop_duplicates()`方法删除重复行: ```python unique_sepal_length = sepal_length.drop_duplicates() ``` 5. **求和、累计和、均值、标准差方差最大值最小值**: 分别计算上述统计量: ```python total_length = sepal_length.sum() cumsum_length = sepal_length.cumsum() mean_length = sepal_length.mean() std_dev_length = sepal_length.std() var_length = sepal_length.var() max_length = sepal_length.max() min_length = sepal_length.min() ``` 把这些步骤组合在一起,完整的代码会像这样: ```python import pandas as pd # 加载数据 iris_df = pd.read_csv('iris.csv') # 获取并处理花萼长度 sepal_length = iris_df['sepal_length'] # 排序 sorted_sepal_length = sepal_length.sort_values() # 去重 unique_sepal_length = sepal_length.drop_duplicates() # 统计量 total_length = sepal_length.sum() cumulative_sum = sepal_length.cumsum() mean_length = sepal_length.mean() std_dev_length = sepal_length.std() variance_length = sepal_length.var() max_length = sepal_length.max() min_length = sepal_length.min() print(f"总和: {total_length}") print(f"累计和: {cumulative_sum}") print(f"平均值: {mean_length}") print(f"标准差: {std_dev_length}") print(f"方差: {variance_length}") print(f"最大值: {max_length}") print(f"最小值: {min_length}") ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值