(5)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数组:

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

 

(求元素之和)

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

运行结果

 

(求平均值)

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

运行结果

(求最大、最小值)

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

运行结果

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

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

运行结果

(求标准差和方差)

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

运行结果:

(求中位数)

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

运行结果:

【any和all的用法】

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

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

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

运行结果

【广播运算】

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

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

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

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

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

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

运行结果:

 

 【矩阵运算】

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

运行结果:

 【排序】

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

运行结果:

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

弦之森

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值