加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

numpy自动生成数组详解

发布时间:2020-12-17 07:43:20 所属栏目:Python 来源:网络整理
导读:1 np.arange(),类似于range,通过指定开始值,终值和步长来创建表示等差数列的一维数组,注意该函数和range一样结果不包含终值。 np.arange(10)array([0,1,2,3,4,5,6,7,8,9]) np.arange(0,0.1)array([ 0.,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9]) 2 np.linspa

1 np.arange(),类似于range,通过指定开始值,终值和步长来创建表示等差数列的一维数组,注意该函数和range一样结果不包含终值。

>>> np.arange(10)
array([0,1,2,3,4,5,6,7,8,9])
>>> np.arange(0,0.1)
array([ 0.,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9])
>>>

2 np.linspace()函数,与上面np.arange不同的是,该函数第三个参数指定的是元素个数,它表示给定起始值和终点值以及元素个数,生成一个一维的等差数列。含有参数endpoint布尔值,默认为True表示包含终值,设定为False表示不包含终值。

>>> np.linspace(0,10)
array([ 0.,0.22222111,0.22222222,0.33333333,0.44444444,0.55555556,0.66666667,0.77777778,0.88888889,1.    ])
>>> np.linspace(0,10,endpoint = False)
array([ 0.,0.9])

3 np.logspace,该函数与np.linspace类似,不过它生成的数组是等比数列,基数默认为10

>>> np.logspace(0,5)
array([ 1.00000000e+00,1.00000000e+01,1.00000000e+02,1.00000000e+03,1.00000000e+04])

但是基数也可以改变,例如将基数base = 2,如下:

>>> np.logspace(0,base = 2)
array([ 1.,1.68179283,2.82842712,4.75682846,8. ])

上面表示,起点为2^0 = 1,终点为2^3 = 8,一共按照等比数列生成5个点,这样公比q = 2^(3/4)

4. np.zeros(),np.ones(),np.empty()可以创建指定的形状和类型数组,其中np.enpty()只分配数组所使用的内存,不对数据初始化起作用。

>>> np.empty((2,3),np.int32)
array([[ 8078112,37431728,8078112],[47828800,47828712,10]])

注意上面创建的2*3的数组并没有被初始化。

>>> np.ones(4)
array([ 1.,1.,1.])
>>> np.ones((2,3))
array([[ 1.,1.],[ 1.,1.]])
>>> np.ones(4,dtype = np.bool)
array([ True,True,True],dtype=bool)
>>> np.zeros(4,dtype = np.bool)
array([False,False,False],dtype=bool)
>>> np.zeros(4)
array([ 0.,0.,0.])

np.full()函数可以生成初始化为指定值的数组

>> np.full(4,np.pi)
array([ 3.14159265,3.14159265,3.14159265])
>>> np.full((2,np.pi)
array([[ 3.14159265,3.14159265],[ 3.14159265,3.14159265]])

此外np.zeros_like(),np.ones_like()等函数创建于参数形状相同的数组即np.zeros_like(a)与np.zeros(a.shape,dtype = a.type)相同

>>> a = np.arange(10).reshape(2,5)
>>> np.zeros_like(a)
array([[0,0],[0,0]])

5 np.fromfunction(),它可以从指定的函数中生成数组,第一个参数是函数名称,第二个参数是数组形状。 

>>> np.fromfunction(lambda a,b:a == b,(3,3))
array([[ True,[False,True]],dtype=bool)
>>> np.fromfunction(lambda i:i%7 +1,(10,))
array([ 1.,2.,3.,4.,5.,6.,7.,3.])

总结

以上就是本文关于numpy自动生成数组详解的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读