Python之Numpy(2)

本文深入讲解Numpy中矩阵的维度理解与操作,包括不同轴的求和、求极值,矩阵乘法及内积计算,以及矩阵的深浅复制区别。同时,介绍了列表的随机排列、排序和小数点后位数的处理技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Numpy的使用(2)

1.维度axis

对于二维矩阵,(axis = 0)时指的是列,(axis = 1)时指的是行;
对于三维矩阵,(axis = 1)时指的是列,(axis = 2)时指的是行;
之后就以此类推。

matrix1 = np.array([
        [1,3,6,45],
        [8,5,6,99],
        [4,1,6,4]
    ])
#打印每一列的和:
print(matrix1.sum(axis=0))
#打印每一行的和:
print(matrix1.sum(axis=1))
#打印每一列的最小值:
print(matrix1.min(axis=0))
#打印每一行的最大值:
print(matrix1.max(axis=1))

[ 13 9 18 148]
[ 55 118 15]
[1 1 6 4]
[45 99 6]


2.矩阵相关计算

2.1矩阵相乘

1.首先创建2个矩阵:
a = np.arange(6).reshape(2,-1)
print(a)
b = np.linspace(5,30,6).reshape(2,-1)
print(b)

[[0 1 2]
[3 4 5]]


[[ 5. 10. 15.]
[20. 25. 30.]]


2.矩阵对应位置相乘:
#矩阵对应位置相乘:
print(a*b)

[[ 0. 10. 30.]
[ 60. 100. 150.]]


3.矩阵乘法(内积):
#将矩阵b转置
b = b.T
print(b)
print(b.shape)

[[ 5. 20.]
[10. 25.]
[15. 30.]]
(3, 2) #3行2列

#矩阵a和b相乘
print(a.dot(b))
# print(np.dot(a,b))

[[ 40. 85.]
[130. 310.]]


2.2矩阵复制

(1) 使用"="
a = np.floor(np.linspace(1,35,6)).reshape(2,-1)
print(a)
b = a
print(b)
print(b is a)

[[ 1. 7. 14.]
[21. 28. 35.]]
[[ 1. 7. 14.]
[21. 28. 35.]]
True


b[1,2] = 1000
print(b)
print(a)

[[ 1. 7. 14.]
[ 21. 28. 1000.]]
[[ 1. 7. 14.]
[ 21. 28. 1000.]]


(2)使用 np.copy
c = np.copy(a)
print(c)
print(c is a)

[[ 1. 7. 14.]
[ 21. 28. 1000.]]
False


c[1,2] = 999
print(c)
print(a)

[[ 1. 7. 14.]
[ 21. 28. 999.]]
[[ 1. 7. 14.]
[ 21. 28. 1000.]]


第一种方法:矩阵b 和 矩阵a指向同一个矩阵;
第二种方法:矩阵c 和 矩阵a指向不同矩阵。

3.列表相关操作

3.1 随机排列序列

a = np.arange(10)
np.random.shuffle(a)
print(a)

[9 3 0 8 4 5 7 2 1 6]


3.2 排序

a = np.sort(a)
print(a)

[0 1 2 3 4 5 6 7 8 9]


3.3 列表内小数操作

x = np.linspace(1,99,14)

#取小数点后3位
a = x.round(decimals=3)

#取小数点后1位
b = x.round(decimals=1)
print(x)
print(a)
print(b)

在这里插入图片描述

注意,round对list无法操作
x = [1.22, 3.66, 9.66,8.444, 8.22222]
x = x.round(x,1)
print(x)

在这里插入图片描述

此时需要将列表array下:
x = [1.22, 3.66, 9.66,8.444, 8.22222]
#x = x.round(x,1)
x = np.array(x)

#取小数点后1位
x = x.round(1)
print(x)

[1.2 3.7 9.7 8.4 8.2]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值