提示:小白笔记,大佬勿喷。
文章目录
提示:以下是本篇文章正文内容,下面案例可供参考
一、Numpy是什么?
NumPy 是 Python 语言的一个第三方库,其支持大量高维度数组与矩阵运算。此外,NumPy 也针对数组运算提供大量的数学函数。机器学习涉及到大量对数组的变换和运算,NumPy 就成了必不可少的工具之一。
二、使用步骤
1.Numpy的属性+创建
1.0引入库 and 生成一个2-13的3行4列的二位矩阵
import numpy as np
A=np.arange(2,14).reshape((3,4))#有序矩阵 可以设置步长
print(A)
显示结果如下:
PS E:\备份资料\python> & e:/实用软件/python_exe/python.exe e:/备份资料/python/草稿代码/test.py
[[ 2 3 4 5]
[ 6 7 8 9]
[10 11 12 13]]
1.1.生成0,1矩阵
import numpy as np
a=np.zeros((3,4))
b=np.ones((2,3))
print(a)
print(b)
PS E:\备份资料\python> & e:/实用软件/python_exe/python.exe e:/备份资料/python/草稿代码/test.py
[[0. 0. 0. 0.]
[0. 0. 0. 0.]
[0. 0. 0. 0.]]
[[1. 1. 1.]
[1. 1. 1.]]
1.2生成空矩阵(接近于零)
import numpy as np
a=np.empty((3,4))
print(a)
PS E:\备份资料\python> & e:/实用软件/python_exe/python.exe e:/备份资料/python/草稿代码/test.py
[[6.23042070e-307 2.12950997e+133 6.29883914e-307 1.06811422e-306]
[9.34595530e-307 1.24610383e-306 1.69118108e-306 8.06632139e-308]
[1.20160711e-306 1.69119330e-306 1.29062229e-306 1.24604136e-306]]
1.3numpy的一些基本属性
import numpy as np
array = np.array({
[f1,2,3],
[2,3,4]})
print(array)
print('number of dim:', array.ndim)#维度
print('shape:', array.shape)
print('size: ', array.size)#多少元素
a = np.array([2,23,4],dtype=np.float32)#int32 or int64 定义属性
print(a.dtype)
PS E:\备份资料\python> & e:/实用软件/python_exe/python.exe e:/备份资
料/python/草稿代码/test.py
[[1 2 3]
[2 3 4]]
number of dim: 2
shape: (2, 3)
size: 6
float32
1.4随机生成
import numpy as np
a = np.linspace(1,10, 5)#一条线 生成一个5段的数列 后可跟.reshape((3,4))
print(a)
PS E:\备份资料\python> & e:/实用软件/python_exe/python.exe e:/备份资
料/python/草稿代码/test.py
[ 1. 3.25 5.5 7.75 10. ]
2.Numpy的基础运算
2.0查看矩阵最大最小值的索引
import numpy as np
A=np.arange(2,14).reshape((3,4))
print(np.argmin(A))
print(np.argmax(A))
PS E:\备份资料\python> & e:/实用软件/python_exe/python.exe e:/备份资料/python/草稿代码/test.py
[[ 2 3 4 5]
[ 6 7 8 9]
[10 11 12 13]]
0
11
2.1.计算矩阵平均值
import numpy as np
A=np.arange(2,14).reshape((3,4))
print(A)
#以下三个都是平均值
print(np.mean(A))
print(np.average(A))
print(A.mean())
print(np.median(A))#中位数
print(np.cumsum(A))#逐个累加
print(np.diff(A))#相邻两个数的差值
PS E:\备份资料\python> & e:/实用软件/python_exe/python.exe e:/备份资料/python/草稿代码/test.py
[[ 2 3 4 5]
[ 6 7 8 9]
[10 11 12 13]]
7.5
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]]
2.2矩阵的 加减乘除
a = np.array([10,20,30,40])
b = np.arange(4)
print(a, b)
c = a-b
d=b**2
e=10*np.sin(a)#对a的每一个值求sin值再乘以10
print(c)
print(d)
print(e)
print(b)
print(b<3)
################## 乘法 #######################
aa=np.array([[1,1],[0,1]])
bb=np.arange(4).reshape((2,2))
cc=aa*bb
cc_dot=np.dot(a,b)
cc_dot_2=aa.dot(bb)
print(aa)
print(bb)
print(cc,cc_dot,cc_dot_2)
PS E:\备份资料\python> & e:/实用软件/python_exe/python.exe e:/备份资
料/python/草稿代码/test.py
[10 20 30 40] [0 1 2 3]
[10 19 28 37]
[0 1 4 9]
[-5.44021111 9.12945251 -9.88031624 7.4511316 ]
[0 1 2 3]
[ True True True False]
[[1 1]
[0 1]]
[[0 1]
[2 3]]
[[0 1]
[0 3]] 200 [[2 4]
[2 3]]
2.3矩阵的基本操作
import numpy as np
A = np.arange(2,14).reshape((3,4))
print(np.sort(A))#逐行从小到大排序排序
print(np.nonzero(A))#找除非0数所在的位置
print(np.transpose(A))#反向,行变列,列变行=>A.T
print(np.clip(A,5,9))#矩阵A中小于5的数全变成5,大于9的数全变成9
PS E:\备份资料\python> & e:/实用软件/python_exe/python.exe e:/备份资
料/python/草稿代码/test.py
[[ 2 3 4 5]
[ 6 7 8 9]
[10 11 12 13]]
(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 6 10]
[ 3 7 11]
[ 4 8 12]
[ 5 9 13]]
[[5 5 5 5]
[6 7 8 9]
[9 9 9 9]]
3.numpy的索引
3.0 索引基础操作
import numpy as np
A=np.arange(3,15)#一维
print(A)
print(A[3])
B=np.arange(3,15).reshape((3,4))#二维
print(B)
print(B[2])#第二行
print(B[0,2])#也可以B[1,1:3]
[ 3 4 5 6 7 8 9 10 11 12 13 14]
6
[[ 3 4 5 6]
[ 7 8 9 10]
[11 12 13 14]]
[11 12 13 14]
5
3.1 for 循环迭代 矩阵
import numpy as np
B=np.arange(3,15).reshape((3,4))#二维
print(B)
for row in B:
print(row)
for column in B.T:
print(column)
print(B.flatten())
for item in B.flat:#B.flat是一个迭代器
print(item)
PS E:\备份资料\python> & e:/实用软件/python_exe/python.exe e:/备份资
料/python/草稿代码/test.py
[[ 3 4 5 6]
[ 7 8 9 10]
[11 12 13 14]]
[3 4 5 6]
[ 7 8 9 10]
[11 12 13 14]
[ 3 7 11]
[ 4 8 12]
[ 5 9 13]
[ 6 10 14]
#<numpy.flatiter object at 0x0000023147194230>
[ 3 4 5 6 7 8 9 10 11 12 13 14]
3
4
5
6
7
8
9
10
11
12
13
14
4.numpy的array 合并
4.0
import numpy as np
A=np.array([1,1,1])
B=np.array([2,2,2])
C=np.hstack((A,B))#左右合并
print(np.vstack((A,B)))#上下合并
print(C)
print(A[:,np.newaxis])#纵向加一个维度 变成纵向的1
[[1 1 1]
[2 2 2]]
[1 1 1 2 2 2]
[[1]
[1]
[1]]
4.1合并的第二种方法
import numpy as np
A=np.array([1,1,1])[:,np.newaxis]
B=np.array([2,2,2])[:,np.newaxis]
C=np.concatenate((A,B,B,A),axis=1)#横向合并
print(C)
[[1 2 2 1]
[1 2 2 1]
[1 2 2 1]]
5.numpy的array分割
5.0
import numpy as np
A=np.arange(12).reshape((3,4))
print(A)
print(np.split(A,2,axis=1))#按列进行分割 分割成两块 不能进行不等的分割
print(np.vsplit(A,3))
print(np.hsplit(A,2))
PS E:\备份资料\python> & e:/实用软件/python_exe/python.exe e:/备份资
料/python/草稿代码/test.py
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
[array([[0, 1],
[4, 5],
[8, 9]]), array([[ 2, 3],
[ 6, 7],
[10, 11]])]
[array([[0, 1, 2, 3]]), array([[4, 5, 6, 7]]), array([[ 8, 9, 10, 11]])]
[array([[0, 1],
[4, 5],
[8, 9]]), array([[ 2, 3],
[ 6, 7],
[10, 11]])]