这次教程是对python的numpy这个包做一个介绍
numpy是python用于分析数据,处理矩阵的一个非常实用的包,下面我将会在jupyter notebook上,一步一步实现numpy这个包的各种用法,并配上说明。
这一节我们要学习的是,生成矩阵。
import numpy as np
import pandas as pd
a=np.random.random([3,3])
a
首先导入之前安装好的包numpy和pandas
按照上图方法,可以创建一个3行3列的矩阵,矩阵元素随机分布在0到1之间
array([[0.73171217, 0.43880544, 0.21583348],
[0.46026688, 0.7176575 , 0.33961139],
[0.76468958, 0.08658304, 0.70468339]])
我们可以利用tuple来生成一个array
#利用tuple来创建一个array
#dtype的意思是,将传入的tuple转化成array形式,并且类型为int类型,也就是整数型
t=(1,2,3)
a=np.array(t,dtype='int')
a
生成结果为
array([1, 2, 3])
还可以利用list来生成一个array
list1=[1,2,3]
a=np.array(list1,dtype='int')
a
结果为
array([1, 2, 3])
刚才生成了list1,我们来生成一个list2,并把两个合并一下看看
list2=[3.1,4.6,7.4]
b=np.array([list1,list2])
b
#合并之后的list1变成了1. 2. 3.,从int型自动变成了float型
结果为
array([[1. , 2. , 3. ],
[3.1, 4.6, 7.4]])
当然矩阵里面的元素还可以设置成虚数
#将dtype写成complex可以将输入的array变成虚数
c=np.array([[1,2],[3,4]],dtype=complex)
c
结果为
array([[1.+0.j, 2.+0.j],
[3.+0.j, 4.+0.j]])
我们还可以查看numpy生成的array的结构,利用shape这个函数。
c.shape
结果为一个两行两列的array
(2, 2)
通过numpy还可以直接生成元素全部为0或者元素全部为1的矩阵。
np.zeros([2,2])
array([[0., 0.],
[0., 0.]])
np.ones([2,3])
array([[1., 1., 1.],
[1., 1., 1.]])
不过如果尝试生成元素全部为2或者其他数字的矩阵,则会报错了~
继续~我们来生成对角线为1的矩阵
#斜角为1的矩阵
np.eye(4)
结果为
array([[1., 0., 0., 0.],
[0., 1., 0., 0.],
[0., 0., 1., 0.],
[0., 0., 0., 1.]])
生成元素间隔为某一常数的矩阵(这个例子里,元素从2开始,到12结尾,间隔设置为2,但是输出不包括12)
#从2开始到12为止(不包括12),每隔2个数出现
np.arange(2,12,2)
结果为
array([ 2, 4, 6, 8, 10])
同理可以生成元素可以被等分的矩阵,利用linspace函数,将从0到10的元素等分为3份
#linspace(a,b,c)代表,从a到b,按照c进行等分
np.linspace(0,10,3)
结果为
array([ 0., 5., 10.])
再试一次,将从0到10的元素等分为5份
np.linspace(0,10,5)
结果为
array([ 0. , 2.5, 5. , 7.5, 10. ])
对于矩阵的生成方法基本介绍完了,下一节将会介绍,如果对numpy生成的array进行计算~
谢谢