美文网首页
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-创建数据

    创建数据 创建ndarray NumPy的数组类被称作ndarray。通常被称作数组。 Numpy库中的矩阵模块为...

  • NumPy-快速处理数据

    NumPy为何而来? 标准安装的Python中用列表(list)保存一组值,可以用来当作数组使用,不过由于列表的元...

  • 科学计算Python基本库

    NumPy-快速处理数据 SciPy-数值计算库 matplotlib-绘制精美的图表 Mayavi-更方便的可视化

  • numpy-无np.count(),pandas有df.coun

    numpy-无np.count(),pandas有df.count()

  • list-numpy-tensor-cv2-PIL 转换合集

    2020/3/20 1. numpy & list 1.1 List -> numpy 1.2 numpy->Li...

  • 1.2 Numpy-创建数组 np.arange() lins

    ‘列表’和‘数组’的区别在中间的 ‘,’ [1,2,3,4,5,6] :列表 [1 2 3 4 5 6] :数组 ...

  • Numpy-其他

    axis理解 NumPy数组的维数称为轴(axes),轴的个数叫秩(rank),一维数组的秩为1,二维数组的秩为2...

  • python3基础学习笔记

    全局变量 输出结果 安装模块Mac: 终端环境里- 安装:sudo pip3 install numpy- 卸载...

  • Numpy-花式索引

    学Numpy遇到一问题:如何一次性获取下列红框中的数据 解决方案:如果不降维,用numpy无法一次性获取降维的解决...

  • Numpy-矩阵变换

    矩阵变换 shape (3,) (3, 3) reshape 生成新矩阵 指定了第一维后,第二维可以不指定,写为-...

网友评论

      本文标题:Numpy-创建数据

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