numpy学习
#调用测试numpy,描述矩阵的基本属性
下面是Demo
import numpy as np
array=np.array([[1,2,3],
[2,3,4]])
print(array)
print('number of dim:',array.ndim)
print('shape:',array.shape)
print('size',array.size)
#结果
[[1 2 3]
[2 3 4]]
number of dim: 2
shape: (2, 3)
size 6
numpy如何创建矩阵和数组
array的创建:分一维和二维
dtype类型
zeros的创建
生成线段linspace
下面是Demo
#array的一维的创建
import numpy as np
a=np.array([2,23,4],dtype=np.int)
print(a.dtype)
#结果
int32
#array二维的创建
import numpy as np
a=np.array([[2,23,4],
[2,32,4]])
print(a)
#结果
[[ 2 23 4]
[ 2 32 4]]
#打印出类型
import numpy as np
a=np.array([2,23,4],dtype=np.float32)
print(a.dtype)
#结果
float32
#zeros的创建
import numpy as np
a=np.zeros((3,4))
print(a)
#结果
[[0. 0. 0. 0.]
[0. 0. 0. 0.]
[0. 0. 0. 0.]]
#生成有序矩阵
import numpy as np
a=np.arange(10,20,2)
print(a)
#结果
[10 12 14 16 18]
#生成线段linspace
import numpy as np
a=np.linspace(1,10,20)
print(a)
#结果
[ 1. 1.47368421 1.94736842 2.42105263 2.89473684 3.36842105
3.84210526 4.31578947 4.78947368 5.26315789 5.73684211 6.21052632
6.68421053 7.15789474 7.63157895 8.10526316 8.57894737 9.05263158
9.52631579 10. ]
#生成线段linspace并reshape生成矩阵
import numpy as np
a=np.linspace(1,10,6).reshape((2,3))
print(a)
#结果
[[ 1. 2.8 4.6]
[ 6.4 8.2 10. ]]
numpy的基础运算
下面是Demo
#numpy基础运算加法
import numpy as np
a=np.array([10,20,30,40])
b=np.arange(4)
print(a,b)
c=a+b
print(c)
#numpy基础运算乘法
import numpy as np
a=np.array([10,20,30,40])
b=np.arange(4)
print(a,b)
c=b**2#双星代表平方运算
print(c)
#numpy基础运算三角函数的运算
import numpy as np
a=np.array([10,20,30,40])
b=np.arange(4)
print(a,b)
c=10*np.sin(a)
print(c)
#结果
[10 20 30 40] [0 1 2 3]
[-5.44021111 9.12945251 -9.88031624 7.4511316 ]
#判断那些值等于大于小于
import numpy as np
a=np.array([10,20,30,40])
b=np.arange(4)
print(b)
print(b<3)
print(b==3)
#结果
[0 1 2 3]
[ True True True False]
[False False False True]
#矩阵的运算dot
import numpy as np
a=np.array([[1,1],
[0,1]])
b=np.arange(4).reshape((2,2))
c=a*b
c_dot=np.dot(a,b)
print(c)
print(c_dot)
#结果
[[0 1]
[0 3]]
[[2 4]
[2 3]]
#random.random()随机产生0到1的数字
import numpy as np
a = np.random.random((2,4))
print(a)
print(np.sum(a,axis=1)) #列数中求和
print(np.min(a,axis=0)) #在每行中寻找最小值
print(np.max(a,axis=1)) #在每列中寻求最大值
#结果
[[0.07532438 0.09907934 0.06886118 0.86305739]
[0.51168121 0.31585224 0.96003614 0.77488453]]
[1.10632228 2.56245412]
[0.07532438 0.09907934 0.06886118 0.77488453]
[0.86305739 0.96003614]
numpy的基础运算2
下面是Demo
#reshape创建矩阵
import numpy as np
a=np.arange(2,14).reshape((3,4))
print(np.argmin(a))#索引最小
print(np.argmax(a))#索引最大
print(np.mean(a))#求出平均值
#结果
0
11
7.5
numpy如何根据位置找到值
python中,一切都是对象,实际上,执行def定义函数后,系统就创建了相应的函数对象。
下面是Demo
#如何根据位置找到值
import numpy as np
a=np.arange(3,15).reshape(3,4)
print(a)
print(a[2][1])
print(a[1,1])
print(a[0,:])
print(a.flatten())
for item in a.flat:#迭代器
print(item)
for row in a:
print(row)
for column in a.T:
print(column)#对列进行的迭代
#结果
[[ 3 4 5 6]
[ 7 8 9 10]
[11 12 13 14]]
12
8
[3 4 5 6]
[ 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 4 5 6]
[ 7 8 9 10]
[11 12 13 14]
[ 3 7 11]
[ 4 8 12]
[ 5 9 13]
[ 6 10 14]
numpy的array合并
下面是Demo
#如何将两个array合并
import numpy as np
A=np.array([1,1,1])
B=np.array([2,2,2])
print(np.vstack((A,B)))#上下合并
D=np.hstack((A,B))#左右合并
C=np.vstack((A,B))#上下合并
print(A[:,np.newaxis])#纵向
print(A.shape,D.shape,C.shape)
print(D)
#结果
[[1]
[1]
[1]
[2]
[2]
[2]]
[[[1]]
[[1]]
[[1]]]
(3, 1) (3, 2) (6, 1)
[[1 2]
[1 2]
[1 2]]
#如何将两个array横向合并
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]]
#如何将两个array纵向合并
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=0)
print(C)
#结果
[[1]
[1]
[1]
[2]
[2]
[2]
[2]
[2]
[2]
[1]
[1]
[1]]