美文网首页
Numpy-创建数据

Numpy-创建数据

作者: davidic | 来源:发表于2019-02-13 17:04 被阅读0次

    创建数据

    创建ndarray

    NumPy的数组类被称作ndarray。通常被称作数组。

    Numpy库中的矩阵模块为ndarray对象,有很多属性:T,data, dtype,flags,flat,imag,real,size,

    itemsize,nbytes,ndim,shape,strides,ctypes,base等等。

    import numpy as np
    vector = np.array([10,20,30])
    matrix=np.array([[1,2,3],[4,5,6],[7,8,9]])
    
    # 创建10个float32的一维数组
    np.random.rand(10).astype(np.float32)
    # 这样就是10*2的二维数组
    np.random.rand(10,2).astype(np.float32)
    

    随机array

    np.random.randn可以返回一个随机数组

    np.random.randn(1,2)
    Out[11]: array([[-2.67809797,  1.49728361]])
    
    # 在0-5之间生成随机数
    np.random.rand(2,3)*5
    # 或者
    np.dot(5,np.random.rand(2,3))
    # 指定生成随机数的范围
    np.random.randint(0, 20, size=[2,3])
    
    • np.random.rand 随机样本位于[0,1)中
    • np.random.randn 从标准正态分布N=(\mu , \sigma ^2)中返回样本,默认的范围是N(0,1),等价于np.random.standard_normal

    如果要返回2*4的N(3,6.25)的随机分布,可知均值是3,标准差是2.5,则

    3+2.5*np.random.randn(2,4)
    

    创建空的array

    np.zeros((5,1))
    

    注意有两层括号,因为参数是一个shape

    随机数的seed

    numpy.random.seed()
    

    seed( ) 用于指定随机数生成时所用算法开始的整数值,如果使用相同的seed( )值,则每次生成的随即数都相同,如果不设置这个值,则系统根据时间来自己选择这个值,此时每次生成的随机数因时间差异而不同。

    from numpy import *
    num=0
    while(num<5):
        random.seed(5)
        print(random.random())
        num+=1
    
    

    每次都一样

    from numpy import *
    num=0
    random.seed(5)
    while(num<5):
        print(random.random())
        num+=1
    
    

    每次不一样

    也就是一次有效。

    创建等差数列

    创建等差数列,默认是创建50个,一般写成

    x2 = np.linspace(1,10,10)
    

    由函数创建

    >>> def func (i):
    
    ...        return  i%4+1
    
    >>>  np. fromfunction(func, (10 ,))
    
    array([ 1., 2., 3., 4., 1., 2., 3., 4., 1., 2.])
    

    首先,定义一个func函数,模4加1。
    然后,调用np对象的fromfunction内建函数,第一个参数是我们自定义的func,第二个参数(m,n),他处理的逻辑是这个样的:第一行第一列取(0,0)带入func函数,第一行第二列取(0,1)带入func函数,第一行第三列取(0,2)带入func函数……循环往复,直到取到值(0,n-1)带入函数以后,开始取第二行。。因为我们定义的函数只有一个参数,所以m从0取到9即可。最后返回数列:array([ 1., 2., 3., 4., 1., 2., 3., 4., 1., 2.]) 。

    读取csv转为numpy

    假设第一行是描述,第二行起是数据;第一列是标签,后面是特征项

    import numpy as np
    
    data = np.loadtxt(open('sample.csv','rb'), delimiter=',', skiprows=1)
    y_train = data[:,0]
    x_train = data[:,1:-1]
    

    np.random.randn可以返回一个随机数组

    np.random.randn(1,2)
    
    Out[11]: array([[-2.67809797,  1.49728361]])
    
    • np.random.rand 随机样本位于[0,1)中
    • np.random.randn 从标准正态分布N=(\mu , \sigma ^2)中返回样本,默认的范围是N(0,1),等价于np.random.standard_normal

    如果要返回2*4的N(3,6.25)的随机分布,可知均值是3,标准差是2.5,则

    3+2.5*np.random.randn(2,4)
    

    如果在matlib模块中使用,则返回的是matrix而不是array

    import numpy.matlib
    np.matlib.randn(1,2)
    
    Out[13]: matrix([[ 0.13107513, -0.87977247]])
    

    相关文章

      网友评论

          本文标题:Numpy-创建数据

          本文链接:https://www.haomeiwen.com/subject/qhbdeqtx.html