1 numpy.array

array(object[, dtype=None, copy=True, order='K', subok=False, ndmin=0])

2 numpy.asarray

asarray(a[, dtype=None, order=None])

将(列表、元组及其嵌套结构)数据a转换成ndarray

返回ndarray数据

1 当a为元组、列表array时

返回值值与输入值不相同

import numpy as np
a = [1,2]
b = np.asarray(a)
print(a) #[1, 2]
print(b) #[1 2]

2 当a为ndarray且不做任何改变时

原数据a与返回值为同一个地址

import numpy as np
a = np.array([1,2])
b = np.asarray(a)
a += 2
print(a) #[3 4]
print(b) #[3 4]
print(a is b)  #True

3 当a为ndarray且改变数据结构时

复制一份数据

import numpy as np
a = np.array([1,2],dtype=np.float32)
b = np.asarray(a,dtype='i4')
a += 2
print(a) #[3. 4.]
print(b) #[1 2]
print(a is b)  #False

总之,可理解为不改变元数据时,为同一个数据地址,当改变元数据时,返回值会复制元数据并进行asarray格式化。

3 numpy.frombuffer

frombuffer(buffer[, dtype=float, count=-1, offset=0])

将缓冲区解释为一维数组。

暴露缓冲区接口的任何对象都用作参数来返回ndarray。

buffer - 一个暴露在缓冲取接口的对象

dtype - 返回ndarray的数据类型,默认float

count - 读取数据数量,默认-1,也即读取所有数据 int数据类型

offset - 读取数据的起始位置(偏移量)

返回值ndarray

import numpy as np
s = 'hello world'
a = np.frombuffer(s,dtype='S1',count=5,offset=6)
print(a)
# 报错:AttributeError: 'str' object has no attribute '__buffer__'

一直没有弄明白,一直报错,要不就是 itemsize cannot be zero in type

请赐教,谢谢!

4 numpy.frombuffer

fromiter(iterable, dtype[, count=-1])

将一个可迭代对象构建成一个ndarray对象,返回一个新的一维数组

count - 读取数据的量,当为默认值-1时,意味读取所有数据。

import numpy as np
iterable = (x*x for x in range(5))
a = np.fromiter(iterable,float)
print(a) #[ 0.  1.  4.  9. 16.]

参考:NumPy - 来自数值范围的数组,和官方文档(numpy-ref-14.5)3.1.2 From existing data

numpy 基于现有数据创建ndarray(from existing data)的更多相关文章

  1. numpy 基于数值范围创建ndarray()

    基于数值范围创建函数创建ndarray 1 numpy.arange arange([start=0,] stop[, step=1,][, dtype=None]) >>> np. ...

  2. NumPy来自现有数据的数组

    NumPy - 来自现有数据的数组 这一章中,我们会讨论如何从现有数据创建数组. numpy.asarray 此函数类似于numpy.array,除了它有较少的参数. 这个例程对于将 Python 序 ...

  3. NumPy 基于数值区间创建数组

    来源:Python Numpy 教程 章节 Numpy 介绍 Numpy 安装 NumPy ndarray NumPy 数据类型 NumPy 数组创建 NumPy 基于已有数据创建数组 NumPy 基 ...

  4. (18)ASP.NET Core 基于现有数据库创建EF模型(反向工程)

    1.简介 Entity Framework Core可通过数据库提供给应用程序的插件访问许多不同的数据库.我们可以通过使用Entity Framework Core构建执行基本数据访问的ASP.NET ...

  5. NumPy 基于已有数据创建数组

    原文:Python Numpy 教程 章节 Numpy 介绍 Numpy 安装 NumPy ndarray NumPy 数据类型 NumPy 数组创建 NumPy 基于已有数据创建数组 NumPy 基 ...

  6. How to: Generate XPO Business Classes for Existing Data Tables 如何:为现有数据表生成 XPO 业务类

    From the Tutorial and other documentation sources, you learned how to create business classes for yo ...

  7. Sql server中用现有表中的数据创建Sql的Insert插入语句

    之前,在Codeproject发表过一篇关于用现有表中数据创建Insert的Sql语句的存储过程,今天将其搬到这里来,注意本存储过程仅适用于SQL SERVER. 介绍 一些时候,你想导出一些现有表中 ...

  8. Python数据分析与展示[第三周](pandas简介与数据创建)

    第三周的课程pandas 分析数据 http://pandas.pydata.org import pandas as pd 常与numpy matplotlib 一块定义 d=pd.Series(r ...

  9. 用NumPy genfromtxt导入数据

    用NumPy genfromtxt导入数据 NumPy provides several functions to create arrays from tabular data. We focus ...

随机推荐

  1. VS2017专业版使用最新版Qt5.9.2教程

    VS2017专业版使用最新版Qt5.9.2教程(最新教材) 最近三天一直在安装Qt5.9.2,为了能够在自己专业版的VS2017上面使用?可以算是花费了不少的功夫.但是一路上并不是很顺利,就在刚才,终 ...

  2. logistic回归具体解释(二):损失函数(cost function)具体解释

    有监督学习 机器学习分为有监督学习,无监督学习,半监督学习.强化学习.对于逻辑回归来说,就是一种典型的有监督学习. 既然是有监督学习,训练集自然能够用例如以下方式表述: {(x1,y1),(x2,y2 ...

  3. SuperMap iDesktop之导入数据

    SuperMap作为一个平台软件有自己的数据格式,现要将ESRI的SHP数据导入到SuperMap的udb数据库中,可以完成导入,但也不得不说几点问题. 下面是ArcGIS中批量导入SHP的操作界面. ...

  4. 【树莓派】使用xdrp远程登录树莓派的图形界面

    之前采用了vnc方式方式的树莓派,但是配置还有点步骤,刚才看了一下,试验了一下xrdp,直接很简单就好了. 树莓派DIY笔记之前有介绍过用VNC连接到树莓派的方法.在Windows下,当然还是自带的远 ...

  5. FasterRcnn训练数据集参数配置

    说明:本博文假设你已经做好了自己的数据集,该数据集格式和VOC2007相同.做好数据集后,我们开始训练,下面是训练前的一些修改.本文来自:http://www.lai18.com/content/25 ...

  6. 对IIC总线时序的一点理解以及ACK和NACK(NAK)

    参考自:http://blog.chinaunix.net/uid-16100003-id-3059814.html 关于IIC的响应问题:对于每一个接收设备(从设备,slaver),当它被寻址后,都 ...

  7. hadoop 文件合并

    来自:http://blog.csdn.net/dandingyy/article/details/7490046 众所周知,Hadoop对处理单个大文件比处理多个小文件更有效率,另外单个文件也非常占 ...

  8. JDK5.0 特性-线程锁Lock

    来自:http://www.cnblogs.com/taven/archive/2011/12/17/2291470.html import java.util.concurrent.Executor ...

  9. unable to find the sources of your current Linux kernel.

    运行 sh ./VBoxLinuxAdditions.run 时FAILED,查看日志: /tmp/vbox.0/Makefile.include.header:97: *** Error: unab ...

  10. Java在不同线程中运行代码

    start()方法开始为一个线程分配CPU时间,这导致对run()方法的调用. 代码1 package Threads; /** * Created by Frank */ public class ...