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)