码迷,mamicode.com
首页 > 其他好文 > 详细

numpy 创建ndarray(from existing data)

时间:2018-06-18 18:22:02      阅读:144      评论:0      收藏:0      [点我收藏+]

标签:嵌套   没有   att   tin   imp   一个   类型   existing   就是   

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 

 

numpy 创建ndarray(from existing data)

标签:嵌套   没有   att   tin   imp   一个   类型   existing   就是   

原文地址:https://www.cnblogs.com/gengyi/p/9195512.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!