栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python之Numpy(2)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python之Numpy(2)

1 Numpy的基础运算 减法:
import numpy as np
a=np.array([1,3,5,6])
b=np.arange(4)
c=a-b#矩阵的减法
print(a,b)
print(c)
加法:
import numpy as np
a=np.array([1,3,5,6])
b=np.arange(4)
c=a+b#矩阵的加法
print(a,b)
print(c)
平方:
c=a**2#矩阵的平方
调用三角函数:
c=10*np.sin(a)#10乘sin(a)
判断array里的值有哪些大于某个数的:
print(a,b)
print(b<3)

运行结果:

[1 3 5 6] [0 1 2 3]
[ True  True  True False]
矩阵的两种乘法运算:
 
c=a*b#矩阵中的数逐个相乘
d=np.dot(a,b)  or
d=a.dot(b)        #矩阵的乘法法则
随机生成矩阵:
 
a=np.random.random((2,4)) #随机生成一个二行四列的矩阵
其他几种矩阵的运算:
b=np.sum(a)#求矩阵内所有数之和
c=np.min(a)#求矩阵内所有数的最小值
d=np.max(a)#求矩阵内所有数的最大值
import numpy as np
a=np.arange(4).reshape((2,2))
b=np.sum(a,axis=1)#矩阵每一行的数的和 如果axis=0 则是每一列的和
c=np.min(a,axis=0)#矩阵每一列的最小值
d=np.max(a,axis=1)#求矩阵每一行的最大值
print(a)
print(b)
print(c)
print(d)

运行结果:

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

1:行 0:列 

2 矩阵最大值或最小值的索引以及其他的常用运算

 

import numpy as np
a=np.arange(2,14).reshape(3,4)
print(a)
print(np.argmin(a)) #打印出最小的索引值
print(a.argmin()) #另外一种表达方式
print(np.argmax(a)) #打印出最大的索引值
print(a.argmax()) #另外一种方式
print(np.mean(a)) #打印出平均值
print(np.mean(a,axis=1)) #打印出行平均值 [ 3.5  7.5 11.5]
print(np.mean(a,axis=0)) #打印出列平均值 [6. 7. 8. 9.]
print(a.mean()) #另外一种表达方式
print(np.average(a))#打印出平均值
#print(a.average()) 这个形式不正确
print(np.median(a))#中位数
print(np.cumsum(a))#逐步累加 [a1 a1+a2 a1+a2+a3 a1+a2+a3+a4......]
print(np.diff(a)) #累差 3*4-》3*3 [[a2-a1 a3-a2 a4-a3],[a6-a5 ......]]
print(np.nonzero(a))#找出不是0的数
#运行结果:
# (array([0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2], dtype=int64), array([0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3], dtype=int64))
#意思为(0,0) (0,1) (0,2)....为非0的数 一一对应
print(np.sort(a)) #排序 逐行从小到大进行排序
print(np.transpose(a))#矩阵的反向 转置
print(a.T)#矩阵的转置另外一种方法
print((a.T).dot(a))#a的转置乘上a
print(np.clip(a,5,9))#将矩阵里所有小于5的数变为5 所有大于9的数变为9 其他数表示不变
 #[[5 5 5 5]
 #[6 7 8 9]
 #[9 9 9 9]]

运行结果:

D:PycharmProjectspythonProjectvenvscriptspython.exe D:/PycharmProjects/pythonProject/hello.py
[[ 2  3  4  5]
 [ 6  7  8  9]
 [10 11 12 13]]
0
0
11
11
7.5
[ 3.5  7.5 11.5]
[6. 7. 8. 9.]
7.5
7.5
7.5
[ 2  5  9 14 20 27 35 44 54 65 77 90]
[[1 1 1]
 [1 1 1]
 [1 1 1]]
(array([0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2], dtype=int64), array([0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3], dtype=int64))
[[ 2  3  4  5]
 [ 6  7  8  9]
 [10 11 12 13]]
[[ 2  6 10]
 [ 3  7 11]
 [ 4  8 12]
 [ 5  9 13]]
[[ 2  6 10]
 [ 3  7 11]
 [ 4  8 12]
 [ 5  9 13]]
[[140 158 176 194]
 [158 179 200 221]
 [176 200 224 248]
 [194 221 248 275]]
[[5 5 5 5]
 [6 7 8 9]
 [9 9 9 9]]

Process finished with exit code 0
 3 Numpy的索引
import numpy as np
a=np.arange(3,15)
print(a)
print(a[2]) #此时a为一维数组 索引为2的值
a=np.arange(3,15).reshape(3,4)
print(a)
print(a[2])#此时a为二维数组 索引为2的那一行 即第三行
print(a[2][1]) #输出(2,1)处的值
print(a[2,1])#也可以这样取数
print(a[2,:])#读出索引为2的那一行所有的数
print(a[:,1])#读出第一列所有的数
print(a[1,1:2])#读出索引为1的那一行的索引从1到2的所有数 不包含冒号后面的索引号的数 即左闭右开

for row in a:
    print(row)#默认是迭代a里的行

for column in a.T:
    print(column)#迭代出a的所有列 即迭代a的转置的所有行

print(a.flatten()) #把矩阵变为只有一行的序列 [ 3  4  5  6  7  8  9 10 11 12 13 14]

#迭代出矩阵a的所有值
for item in a.flat:
    print(item)

运行结果:
 

D:PycharmProjectspythonProjectvenvscriptspython.exe D:/PycharmProjects/pythonProject/hello.py
[ 3  4  5  6  7  8  9 10 11 12 13 14]
5
[[ 3  4  5  6]
 [ 7  8  9 10]
 [11 12 13 14]]
[11 12 13 14]
12
12
[11 12 13 14]
[ 4  8 12]
[8]
[3 4 5 6]
[ 7  8  9 10]
[11 12 13 14]
[ 3  7 11]
[ 4  8 12]
[ 5  9 13]
[ 6 10 14]
[ 3  4  5  6  7  8  9 10 11 12 13 14]
3
4
5
6
7
8
9
10
11
12
13
14

Process finished with exit code 0

 

 

 


 


 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/769705.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号