当前位置:   article > 正文

(5)numpy数组的基本运算_numpy 数组运算

numpy 数组运算

内容

·基础运算:

·求元素之和

arr.sum() or np.sum(arr)

·求平均值

arr.mean() or np.mean(arr)

·求最大、最小值

arr.max() or np.max(arr)

arr.min() or np.min(arr)

·求最大、最小值的下标索引

arr.argmax() or np.argmax(arr)

arr.argmin() or np.argmin(arr)

·求标准差和方差

标准差:arr.std() or np.std(arr)

方差:arr.var() or np.var(arr)

·求中位数

np.median(arr)

·any和all用法

·广播运算

·矩阵运算

·排序

import numpy as np

【基础运算】

先生成一个含有10个元素的numpy数组:

  1. arr = np.random.randint(0, 20, size=10)
  2. print("arr:\n", arr)

 

(求元素之和)

  1. # 第一种:求中位数时,不可使用此方法
  2. print("元素之和:", arr.sum())
  3. # 第二种:直接调用numpy库中的sum方法,传入参数为numpy数组,任何情况下都适用
  4. print("元素之和:", np.sum(arr))

运行结果

 

求平均值

  1. # 求numpy数组中所有元素的平均值:mean()方法
  2. print("元素平均值:", arr.mean())

运行结果

(求最大、最小值

  1. # 求numpy数组中元素的最大、最小值:max()方法、min()方法
  2. print(f"元素最大值:{arr.max},元素最小值:{arr.min}")

运行结果

(求最大、最小值的索引下标)

  1. # 求最大最小元素的下标:
  2. print(f"最大值下标为{arr.argmax()},最小值下标为{arr.argmin()}")

运行结果

(求标准差和方差)

  1. # 求所有元素的标准差和方差:
  2. print(f"标准差为{arr.std()}{np.std(arr)}方差为{arr.var()}")

运行结果:

(求中位数)

  1. # 注意,求中位数时,不可以”arr.median()“,因为arr并不具备排序方法,所以会报错
  2. print(f"中位数为{np.median(arr)}")

运行结果:

【any和all的用法】

any:检测一个布尔列表BOOL中,是否至少存在一个True。只要存在一个True,则返回True;反之,则返回False

all:检测一个布尔列表BOOL中,是否全为True。全为True时,返回True;反之,则返回False

  1. bool_list = np.array([True, False, True, True, False, False, False])
  2. print(bool_list.any())
  3. print(bool_list.all())

运行结果

【广播运算】

特点:它本身是一种机制,而不是一种语法原则,会自动进行补维

支持numpy.array和任意一个数运算

一个数可以和一个数组进行运算,运算方式:

将这个数和数组中每个元素进行相应的运算,返回值依旧为一个数组,且为布尔数组

最多使用:一个数组和一个零维数字进行运算

  1. arr = np.random.randint(0, 100, size=8)
  2. return_bool = arr > 50
  3. print(arr, "\n", return_bool)
  4. print(arr[return_bool])
  5. # 查看一个数组中,是否至少存在一个大于70的数
  6. print("数组中至少存在一个大于70的数:", (arr > 70).any())
  7. # 不能广播运算的例子:
  8. m = np.ones(shape=(2, 2))
  9. n = np.ones(shape=(3, 3))
  10. # 此处会报错
  11. print(m + n)

运行结果:

 

 【矩阵运算】

  1. # 矩阵运算
  2. a = np.array([[1, 2], [3, 3]])
  3. b = np.array([[1, 1], [3, 3]])
  4. # 错误示范,此种情况下,会进行对应位置相乘,并不是数学意义中的矩阵运算
  5. print(a * b)
  6. # 正确示范
  7. print(np.dot(a, b))

运行结果:

 【排序】

  1. # 排序(了解即可,panda会有更好的排序方式)
  2. data = np.random.randint(0, 100, size=20)
  3. print(data)
  4. # 将生成数,按从小到大的顺序排列
  5. print(np.sort(data))

运行结果:

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/620005
推荐阅读
  

闽ICP备14008679号