周一啦,工作使我快乐使我开心,这一期的Python学习教程想跟大家讲一下Numpy系列,创建数组的三大绝招,绝招哈,都传授给你们啦!
创建Numpy数组的三大绝招
使用函数np.array
使用便捷的内置函数
使用随机库函数
Numpy库的核心对象便是ndarray数组,又称n维数组。要知道,基础数据的统计、变换等运算都是基于数组对象的,所以对于ndarray的掌握至关重要。而所谓工欲善其事必先利其器,工具我们暂时是搞明白了,至于怎么打造出来,这块得好好讲讲了。这篇Python学习教程的主要目的是帮助同学们更好地了解创建Numpy数组的三大绝招。
1.使用np.array()创建
看过我Python学习教程的童鞋们,在“人生苦短,我用Python”的取经之路上,想必都知道list列表,这是Python内置的一种基本数据类型。而ndarray数组便可通过对list的转换来进行创建,只要简单地将Python列表传递给数组函数np.array()即可。
a = np.array([1,2,3])a
array([1, 2, 3])
当然,上例得到的只是一维数组,想要多维的,请将一系列的列表传递给数组函数,但要保证()内部的数据类型是list,这点很重要。
b = np.array([[1, 2, 3], [4, 5, 6]])b
array([[1, 2, 3],[4, 5, 6]])
就这样,我们依次创建了一维数组a与二维数组b,创建ndarray数组的第一招是不是很简单呢,你get到了吗?
2.使用内置函数便捷创建
在Numpy库中,np.array()给我们提供了创建数组的简单方法,让我们卯足了尽头,准备开始揭开Numpy的面纱,大干一场。但突然,一盆冷水泼身上,关键问题来了,如果我们想创建由0到19的数字序列数组,那是不是得一个数字一个数字地敲,创建0到100的呢?创建多维的呢?不敢想象!!!
其实,Numpy库很人性化地为我们提供了非常多的内置函数,用于便捷地创建数组,下面我们来看一看
np.arange(),创建递增序列
#创建一个值范围为0到19的数组c = np.arange(20)#arange搭配reshape,创建从0-19的4行5列数组d = np.arange(20).reshape(4,5)d
array([[ 0, 1, 2, 3, 4], [ 5, 6, 7, 8, 9], [10, 11, 12, 13, 14], [15, 16, 17, 18, 19]])
注意:这里要掌握arange()的结构,np.arange(x)为左闭右开结构,数据从0开始,到x-1结束,生成规则递增序列,同时也可以指定arange的3s参数,start、stop与step。
np.ones(shape=,dtype=),创建全为1的数组矩阵
e = np.ones((3,4))e
array([[1., 1., 1., 1.], [1., 1., 1., 1.], [1., 1., 1., 1.]])
注意:shape为元组格式,dtype可以决定数据类型
np.zeros(shape=,dtype=),创建全为0的数组
f = np.zeros((2,4))
array([[0., 0., 0., 0.], [0., 0., 0., 0.]])
np.eye(M),创建对角线为1,其余为0 的数组
g = np.eye(3)
array([[1., 0., 0.], [0., 1., 0.], [0., 0., 1.]])
np.full(shape=,fill_value=),任意填充数字
h = np.full((2,2), 3)
array([[3, 3], [3, 3]])
np.linspace(start,stop,num),线性区间等分,linspace是左闭右闭
#将0-10区间等分4份i = np.linspace(0, 10, num=4)i
array([ 0., 3.333, 6.666, 10.])
以上的6个简单操作,是不是非常贴心呢,狂敲666有木有,下面豁出去了,再为各位童鞋们们献上最后一招大绝招!
3.使用随机库函数创建
Numpy也提供random模块,来帮助我们去创建随机性的序列,从此生成一组随机数就变得so easy,下面我们就来瞧一瞧。
np.random.random(size),生成0-1的随机数,左闭右开,size表示个数,可以是一维、二维或者三维
np.random.random((2,2))
array([[0.31153256 , 0.128392402], [0.023428592, 0.324950205]])
可以看出,生成的数据是集中在0-1的2行2列随机数据。
np.random.randint(low=,hight=,size=),生成整数类型的随机数,low最小值,hight最大值,size个数
np.random.int(0,10,3)
array([1 , 5 , 7 ])
np.random.randn(size),生成标准正态分布,size个数
代码自己挖掘,敲起来试试看
np.random.normal(loc,scale,size),生成非标准正态分布
代码自己挖掘,敲起来试试看呀
对于随机数的创建,姑且掌握这4个技巧,所谓来日方长,后面如果接触到的未提及的方法,再来详细聊聊。更多的Python学习教程也会继续为大家更新哦!