Numpy-创建数据

创建数据

创建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]])
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • numpy.random.randint Return random integers fromlow(inclu...
    onepedalo阅读 1,286评论 0 1
  • 基础篇NumPy的主要对象是同种元素的多维数组。这是一个所有的元素都是一种类型、通过一个正整数元组索引的元素表格(...
    oyan99阅读 5,289评论 0 18
  • import numpy as np 创建ndarray data1 = [6,7.5, 8, 0, 1]arr1...
    陆文斌阅读 824评论 0 1
  • 放松放松 今儿上午的考试真的是为娘太紧张了。我只想说:哲呀!妈妈在家不比你少一分紧...
    1cbf7e04a577阅读 156评论 0 3
  • 《教室里的正面管教》读书笔记2 书摘 如果不给他们机会以建设性的方式运用个人力量,他们就会以破坏性的方式运用它。为...
    锴_书阅读 1,063评论 0 48

友情链接更多精彩内容