Numpy-创建数据

2019-02-13  本文已影响0人  davidic

创建数据

创建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])

如果要返回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]])

如果要返回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]])
上一篇下一篇

猜你喜欢

热点阅读