numpy——使用函数创建(2)
tips:np.set_printoptions(suppress = True) //强制不用科学计数法
如果生成一定规则的数据,可以使用NumPy提供的专门函数
》arange函数类似于python的range函数:指定起始值、终止值和步长来创建数组
》和Python的range类似,arange同样不包括终值;但arange可以生成浮点类型,而range只能是整数类型
a = np.arange(1, 10, 0.5) print a #>>array([1. , 1.5, 2. , 2.5, 3. , 3.5, 4. , 4.5, 5. , 5.5, 6. , 6.5, 7. , 7.5, 8. , 8.5, 9. , 9.5])
》linspace(a,b,k)函数通过指定起始值、终止值和元素个数来创建数组,缺省包括终止值
&把a~b切分为k个数放进数组中,默认[a,b];
b = np.linspace(1, 10, 10) print(b) #>>array([ 1., 2., 3., 4., 5., 6., 7., 8., 9., 10.])
&可以通过endpoint关键字指定是否包括终值,默认为True,若为False则为[a,b)
b = np.linspace(1, 11, 10, endpoint = False) print(b) #>>array([ 1., 2., 3., 4., 5., 6., 7., 8., 9., 10.]) b = np.linspace(1, 10, 10 , endpoint = False) #>>array([1. , 1.9, 2.8, 3.7, 4.6, 5.5, 6.4, 7.3, 8.2, 9.1])
》和linspace类似,logspace可以创建等比数列
&终止值为10^2,有10个数的等比数列 (linspace是线性的,logspace是指数的,第一个参数是起始值的以10为底的指数,第二个参数是默认值以10为底的指数,第三个参数是切分的个数)
d = np.logspace(1, 2, 10, endpoint=True) print d #>>array([ 10. , 12.91549665, 16.68100537, 21.5443469 , 27.82559402, 35.93813664, 46.41588834, 59.94842503, 77.42636827, 100. ])
&默认底数是10
f = np.logspace(1, 4, 4, endpoint=True) # >>array([ 10., 100., 1000., 10000.])
下面创建起始值为2^0,终止值为2^10(包括),有10个数的等比数列
f = np.logspace(0, 10, 10, endpoint=True, base=2) print f #>>array([1.000e+00, 2.000e+00, 4.000e+00, 8.000e+00, 1.600e+01, 3.200e+01, 6.400e+01, 1.280e+02, 2.560e+02, 5.120e+02)
f = np.logspace(1, 4, 4, endpoint=True, base = 2)
#>>array([ 2., 4., 8., 16.])
》使用 frombuffer, fromstring, fromfile等函数可以从字节序列创建数组
s = 'abcd' g = np.fromstring(s, dtype=np.int8) #打印出对应的ASCII码 print(g) #>>array([ 97, 98, 99, 100], dtype=int8)