Numpy(2)

import numpy as np

NumPy提供了很多专门用来创建数组的函数
- arange
- linspace & logspace
- frombuffer,fromstring ,fromfile

#arange函数类似于python的range函数,通过指定开始值、终值和步长来创建一维数组
np.arange(1,2,0.1)
array([ 1. ,  1.1,  1.2,  1.3,  1.4,  1.5,  1.6,  1.7,  1.8,  1.9])
np.arange(1,2,0.01)
array([ 1.  ,  1.01,  1.02,  1.03,  1.04,  1.05,  1.06,  1.07,  1.08,
        1.09,  1.1 ,  1.11,  1.12,  1.13,  1.14,  1.15,  1.16,  1.17,
        1.18,  1.19,  1.2 ,  1.21,  1.22,  1.23,  1.24,  1.25,  1.26,
        1.27,  1.28,  1.29,  1.3 ,  1.31,  1.32,  1.33,  1.34,  1.35,
        1.36,  1.37,  1.38,  1.39,  1.4 ,  1.41,  1.42,  1.43,  1.44,
        1.45,  1.46,  1.47,  1.48,  1.49,  1.5 ,  1.51,  1.52,  1.53,
        1.54,  1.55,  1.56,  1.57,  1.58,  1.59,  1.6 ,  1.61,  1.62,
        1.63,  1.64,  1.65,  1.66,  1.67,  1.68,  1.69,  1.7 ,  1.71,
        1.72,  1.73,  1.74,  1.75,  1.76,  1.77,  1.78,  1.79,  1.8 ,
        1.81,  1.82,  1.83,  1.84,  1.85,  1.86,  1.87,  1.88,  1.89,
        1.9 ,  1.91,  1.92,  1.93,  1.94,  1.95,  1.96,  1.97,  1.98,  1.99])
#linspace函数通过指定(开始值,终值,元素个数)平均来创建一维数组,
#可以通过endpoint关键字指定是否包括终值,缺省设置是包括终值:

np.linspace(1,2,11)
array([ 1. ,  1.1,  1.2,  1.3,  1.4,  1.5,  1.6,  1.7,  1.8,  1.9,  2. ])
#logspace函数和linspace类似,不过它创建等比数列
#下面的例子产生1(10^0)到100(10^2)、有20个元素的等比数列:
np.logspace(0,2,20)
array([   1.        ,    1.27427499,    1.62377674,    2.06913808,
          2.6366509 ,    3.35981829,    4.2813324 ,    5.45559478,
          6.95192796,    8.8586679 ,   11.28837892,   14.38449888,
         18.32980711,   23.35721469,   29.76351442,   37.92690191,
         48.32930239,   61.58482111,   78.47599704,  100.        ])
a=np.array([1,2,3,4])
np.log10(a)
array([ 0.        ,  0.30103   ,  0.47712125,  0.60205999])
#使用frombuffer, fromstring, fromfile等函数可以从字节序列创建数组
s='abcdefgh'
np.fromstring(s,dtype=np.int8)
array([ 97,  98,  99, 100, 101, 102, 103, 104], dtype=int8)
#如果从字符串s创建16bit的整数数组,那么两个相邻的字节就表示一个整数,
#把字节98和字节97当作一个16位的整数,它的值就是98*256+97 = 25185。
#可以看出内存中是以little endian(低位字节在前)方式保存数据的。
np.fromstring(s,dtype=np.int16)
array([25185, 25699, 26213, 26727], dtype=int16)
98*256+97
25185
np.fromstring(s,dtype=np.float)
array([  8.54088322e+194])
def func(i):
    return i%4+1
np.fromfunction(func,(10,)) #当要处理 X % Y时, 如果, X < Y 的话, 回传值就是 X 自己
array([ 1.,  2.,  3.,  4.,  1.,  2.,  3.,  4.,  1.,  2.])
def func1(i,j):
    return (i+1)*(j+1)
a=np.fromfunction(func1,(9,9))
a
array([[  1.,   2.,   3.,   4.,   5.,   6.,   7.,   8.,   9.],
       [  2.,   4.,   6.,   8.,  10.,  12.,  14.,  16.,  18.],
       [  3.,   6.,   9.,  12.,  15.,  18.,  21.,  24.,  27.],
       [  4.,   8.,  12.,  16.,  20.,  24.,  28.,  32.,  36.],
       [  5.,  10.,  15.,  20.,  25.,  30.,  35.,  40.,  45.],
       [  6.,  12.,  18.,  24.,  30.,  36.,  42.,  48.,  54.],
       [  7.,  14.,  21.,  28.,  35.,  42.,  49.,  56.,  63.],
       [  8.,  16.,  24.,  32.,  40.,  48.,  56.,  64.,  72.],
       [  9.,  18.,  27.,  36.,  45.,  54.,  63.,  72.,  81.]])
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值