第一部分,numpy创建矩阵
numpy创建一般矩阵:
输入:
import numpy as np #把numpy简写为np
array=np.array([[1,2,3],
[2,3,4]]) #把一个数组转为矩阵
print(array) #输出矩阵
print(array.ndim) #输出这是几维数组,numbers of dim
print(array.shape) #输出行数和列数
print(array.size) #输出总共有多少元素
输出:
2
(2,3)
6
说明数组array是2维数组,2行3列,一共6个元素。
numpy定义矩阵格式:
输入:
import numpy as np
array=np.array([[1,2,3],
[2,3,4]],dtype=np.int32) #定义矩阵的存储格式,格式可以是 int32/64,float32/64
print(array.dtype) #输出矩阵的存储格式
输出:
int 32
numpy定义特殊矩阵:
输入:
import numpy as np
array1=np.zeros((3,4))#创建3行4列全0矩阵
array2=np.ones((3,4))#创建3行4列全1矩阵
array3=np.empty((3,4))#创建3行4列空矩阵
print(array1,array2,array3)
输出:
[[0,0,0]
[0,0,0]
[0,0,0]]
[[1,1,1]
[1,1,1]
[1,1,1]]
输入:
import numpy as np
array1=np.arange(10,20,2) #输出从10到20,步长为2的数组
array2=np.arange(12) #输出从0到11的数组
array3=np.arange(12).reshape((3,4)) #输出从0到11数组成的矩阵,格式为3行4列
print(array1,array2,array3)
输出:
[10,12,14,16,18]
[0,1,2,3,4,5,6,7,8,9,10,11]
[[0,1,2,3]
[4,5,6,7]
[8,9,10,11]]
输入:
import numpy as np
array1=np.linspace(1,10,6) #创建1到10之间等距的6个元素组成的数组
array2=np.linspace(1,10,6).reshape((2,3))#创建上述数组,但是输出改为2行3列的矩阵
print(array1,array2)
输出:
[ 1. 2.8 4.6 6.4 8.2 10. ]
[[ 1. 2.8 4.6]
[ 6.4 8.2 10. ]]
第二部分,numpy基础计算
数组的基础计算:
加法
输入:
a=np.array([10,20,30,40])
b=np.arange(4)
print(a,b)
c=a+b
print(c)
输出:
[10 20 30 40]
[0 1 2 3]
[11 22 33 44]
乘法:
输入:
d=b**2#就是计算平方
print(d)
输出:
[0 1 4 9]
三角函数:
输入:
e=10*np.sin(a)
print(e)
输出:
[-5.4402111 9.12945251 -9.88031624 7.4511316]
判断那些值小于某个数或者大于某个数:
输入:
print(b)
print(b<3)
print(b==3)
输出:
[0 1 2 3]
[True True True False]
[False False False True]
矩阵的基础计算:
乘法:
输入:
a=np.array([[1,1],[0,1]])
b=np.arange(4).reshape((2,2))
c=a*b#矩阵的各个位置逐个相乘,并不是矩阵乘法
d=np.dot(a,b)#矩阵乘法,另一种写法是:d=a.dot(b)
print(a,b,c,d)
输出:
[[1 1]
[0 1]]#a
[[0 1]
[2 3]]#b
[[0 1]
[0 3]]#c
[[2 4]
[2 3]]#d
矩阵内部数值计算:
输入:
a=np.random(0,1).random((2,4))#随机生成一个数值在0到1之间的2行4列矩阵
print(a)
print(np.sum(a))#矩阵内所有数值元素求和
print(np.min(a))#矩阵内最小的数值
print(np.max(a))#矩阵内最大的数值
输出:
[[0.75848453 0.92104539 0.49954658 0.1547778]
[0.10790301 0.8903301 0.85886243 0.80849091]]
4.999440747
0.10790301
0.92104539
输入:
print(np.sum(a,axis=1))#矩阵内每一行数值元素求和,axis=0寓意每一列,axis=1寓意每一行
print(np.min(a,axis=0))#矩阵内每一列最小的数值
print(np.max(a,axis=1))#矩阵内每一行最大的数值
输出:
[2.3338543 2.66558645]
[0.10790301 0.8903301 0.49954658 0.1547778]
[0.92104539 0.8903301]
返回矩阵内元素的索引:
输入:
A=np.arange(2,4).reshape((3,4))#随机生成一个数值在2到4之间的3行4列矩阵
print(A)
print(np.argmin((A))#返回矩阵中数值最小元素的索引,就是位置
print(np.argmax(A))#返回矩阵中数值最大元素的索引
输出:
[[2 3 4 5]
[6 7 8 9]
[10 11 12 13]]
0#它在第1个位置
11#它在第11个位置
返回矩阵内元素的平均值/中位数:
输入:
print(np.mean(A))#计算矩阵内元素的平均值,也可以用A.mean()或是np.average(A)
print(np.median(A))#计算矩阵内元素的中位数
输出:
7.5
7.5
矩阵内元素的逐步累加/差:
输入:
print(np.cumsum(A))#矩阵内元素的逐步累加:前1个相加,前2个相加...等等
print(np.diff(A))#矩阵内元素的逐步累加:第2个减第1个,第3个减第2个...等等
输出:
[2 5 9 14 20 27 35 44 54 65 77 90]
[[1 1 1]
[1 1 1]
[1 1 1]]