有关数组的计算

Numpy学习笔记005

七、有关数组的计算

有关数组的计算对象有数组和数,数组和数组,函数等方面,涵盖计算的方法有常见的加法、减法、乘法、除法,均值,方差等。

1. 数组与数的计算

主要是加减乘除运算。

a1 = np.arange(10).reshape(2,5)
print(a1)
print("="*40)
# 加法
a2 = a1 + 10
print(a2)
print("="*40)
# 减法
a3 = a1 - 10
print(a3)
print("="*40)
# 除法
a4 = a1 * 10
print(a4)
print("="*40)
# 乘法
a5 = a1 / 10
print(a5)
[[0 1 2 3 4]
 [5 6 7 8 9]]
========================================
[[10 11 12 13 14]
 [15 16 17 18 19]]
========================================
[[-10  -9  -8  -7  -6]
 [ -5  -4  -3  -2  -1]]
========================================
[[ 0 10 20 30 40]
 [50 60 70 80 90]]
========================================
[[0.  0.1 0.2 0.3 0.4]
 [0.5 0.6 0.7 0.8 0.9]]
2.数组与数组的计算
2.1 结构相同的数组之间的运算
a6 = np.arange(0,24).reshape((3,8))
a7 = np.random.randint(1,10,size=(3,8))
a8 = a6 + a7   #加减乘除都行
print(a6)
print("="*20)
print(a7)
print("="*20)
print(a8)
[[ 0  1  2  3  4  5  6  7]
 [ 8  9 10 11 12 13 14 15]
 [16 17 18 19 20 21 22 23]]
====================
[[2 1 6 4 1 6 7 6]
 [3 5 9 7 5 8 7 8]
 [5 2 5 6 9 3 6 5]]
====================
[[ 2  2  8  7  5 11 13 13]
 [11 14 19 18 17 21 21 23]
 [21 19 23 25 29 24 28 28]]
2.2 与行数相同并且只有1列的数组之间的运算
b1 = np.random.randint(10,20,size=(3,8)) #3行8列
b2 = np.random.randint(1,10,size=(3,1)) #3行1列
b3 = b1 - b2  #行数相同,且b2只有1列,能互相运算,b1的每一列都与b1相减(加减乘除都行)
print(b1)
print("="*20)
print(b2)
print("="*20)
print(b3)
[[15 18 10 18 18 19 11 17]
 [13 17 14 18 14 16 10 10]
 [19 16 17 17 15 10 12 12]]
====================
[[1]
 [8]
 [3]]
====================
[[14 17  9 17 17 18 10 16]
 [ 5  9  6 10  6  8  2  2]
 [16 13 14 14 12  7  9  9]]
2.3 与列数相同并且只有1行的数组之间的运算
b4 = np.random.randint(5,10,size=(4,6))  #4行6列
b5 = np.random.randint(1,9,size=(1,6))  #1行6列
b6 = b4 * b5   #列数相同,且b5只有1行,能互相运算,b4的每一列都与b5相乘(加减乘除都行)
print(b4)
print(b5)
print(b6)
[[9 6 5 5 5 8]
 [6 6 5 9 6 7]
 [9 5 7 8 9 8]
 [9 7 5 6 8 7]]
====================
[[3 1 8 2 1 7]]
====================
[[27  6 40 10  5 56]
 [18  6 40 18  6 49]
 [27  5 56 16  9 56]
 [27  7 40 12  8 49]]
3. 运用函数进行数组计算

使用函数进行数组运算的函数有最大值max()、最小值min()、总和sum()、平均值mean()、乘积prod()、标准偏差std()

3.1 sum()求和函数

可用于查找数组中元素的总和,适用于一维数组、二维数组和更高维度的数组。

一维数组:

c = np.array([1, 2, 3, 4])
print(c.sum())
10

二维数组:
对二维数组求和要指定轴,axis=0表示对对行轴(看成列)求和,axis=1表示对列轴(看成行)求和。返回值为一个一维数组。

c2 = np.array([[1, 2],[5, 2]])
# 对行轴(列)求和
print(c2.sum(axis=0))
print("="*10)
# 对列轴(行)求和
print(c2.sum(axis=1))
[6 4]
==========
[3 7]
3.2 max()min()
c3 = np.random.random((2,2))
print(c3)
print("="*30)
# 最大值
print(c3.max())
print("="*30)

# axis=0 对列求最值, axis=1 对行求最值
# 指定轴
print(c3.max(axis=0)) # 求二维数组每列的最大值,组合成一个一维数组
print("="*30)
print(c3.max(axis=1)) # 求二维数组每行的最小值,组合成一个一维数组
print("="*30)

# 最小值
print(c3.min())
print("="*30)

# 指定轴
print(c3.min(axis=0))
print("="*30)
print(c3.min(axis=1))
[[0.27362271 0.1397308 ]
 [0.45717945 0.08124661]]
==============================
0.4571794519618364
==============================
[0.45717945 0.1397308 ]
==============================
[0.27362271 0.45717945]
==============================
0.08124661402655908
==============================
[0.27362271 0.08124661]
==============================
[0.1397308  0.08124661]
3.3 mean()求均值
c4 = np.random.randint(0,8,size=(2,2))
print(c4)
print(c4.mean())
[[4 7]
 [2 7]]
5.0
3.4 std()标准差
c5 = np.arange(5)
print(c5)
print(c5.std())
[0 1 2 3 4]
1.4142135623730951
3.5 prod() 乘积

获取元素相乘的结果。不论是多少维数组,prod()返回的都是所有元素相乘的总和。

# 一维数组
c6 = np.array([1,2,3])
print(c6)
print(c6.prod())
print("="*20)

# 二维数组
c7 = np.random.randint(1,5,size=(2,2))
print(c7)
print(c7.prod())
print("="*20)

# 三维数组
c8 = np.random.randint(1,5,size=(1,3,3))
print(c8)
print(c8.prod())
[1 2 3]
6
====================
[[4 4]
 [4 1]]
64
====================
[[[3 1 4]
  [2 4 4]
  [1 1 2]]]
768
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值