numpy 创建ndarray(from existing data)

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

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

时间: 2024-10-28 04:22:22

numpy 创建ndarray(from existing data)的相关文章

NumPy学习:创建ndarray数组(linespace,arange,uniform,normal)

""" 创建ndarray数组(linespace,arange,uniform,normal) """ import numpy as np print("linespace:", np.linspace(0, 100, 5)) # 等间隔的序列 print("arange:", np.arange(10, 50, 10)) # 每间隔10 print("uniform:", np.r

numpy中ndarray数据结构简介

一.综述 1.ndarray的本质是:对象     2.ndarray是numpy中的数据结构(叫做:n维数组),是同构数据多维容器,所有元素必须是相同类型 3.面向数组的编程和思维方式:用简洁的数组表达式代替循环写法,通常叫做 --‘矢量化’ 二.ndarray属性: 1.ndarray.ndim:数组的维数(即数组轴的个数,也被称作为  秩 ). 2.ndarray.shape:数组的维数.维度,返回一个元组,这个元组的长度就是维度的数目,即ndim属性.比如2排3列的矩阵,其shape就是

什么是Numpy的ndarray

什么是Numpy的ndarray 首先,Numpy的核心是ndarray. 然后,ndarray本质是数组,其不同于一般的数组,或者Python 的list的地方在于它可以有N 维(dimentions),也可简单理解为数组里面嵌套数组. 最后,Numpy为ndarray提供了便利的操作函数,而且性能优越,完爆Python 的list,因此在数值计算,机器学习,人工智能,神经网络等领域广泛应用. Numpy几乎是Python 生态系统的数值计算的基石,例如Scipy,Pandas,Scikit-

创建ndarray

Numpy最重要的一个特点就是其N维数组对象(即ndarray),该对象是一个快速而灵活的大数据集容器,是一个通用的同构数据多维容器,也就是说,其中的所有元素必须是相同类型的. 创建数组最简单的方法就是array函数,它接受一切序列型的对象(包括其他数组),然后产生一个新的含有传入数据的Numpy数组. 以一个列表为例: 1 In [2]: import numpy as np 2 3 In [3]: simple = [1,2.3,4,5] 4 5 In [4]: arr = np.array

Numpy 创建数组2

Numpy数组除了可以使用底层 ndarray 构造器来创建外,也可以同伙一下集中方式来创建. numpty.empty numpy.empty方法用来创建一个指定形状(shaoe).数据类型(dtype)且未初始化的数组: numpy.empty(shape, dtype = float, order = “C”) 参数说明: 参数 描述 shape 数组形状 dtype 数据类型, 可选 oeder 有“C”和“F”两个选项,分别代表,行优先和列优先,在计算机内存中的存储元素顺序 下面是创建

利用python的numpy创建矩阵并对其赋值

创建一个3X3的矩阵并对其赋值: x = numpy.array([[1,2,3],[4,5,6],[7,8,9]]) print x print x.shape 运行结果: [[1 2 3] [4 5 6] [7 8 9]] (3L, 3L) [Finished in 0.2s]

Python中使用numpy创建初始化array

import numpy as np np.arange(10, 100, 20, dtype = float) #numpy中的arange与普通的range作用一样,即range(start, stop, step) #arange可以通过dtype来指定创建的数组类型,数组不同与元组和列表,整个数组的类型必须是一样的. np.linspace(start, stop, number) #其中number指定了start到stop之间的个数(包含两端点值) 当然也可以产生随机数来初始化数组.

numpy的ndarray数组如何reshape成固定大小

在做肺结节检测的时候,遇到dicom文件reshape之后尺寸大小不一.因为大下不一,numpy.reshape又无法重塑成指定大小的.最后还是在一个大牛的代码中找到了解决方法. VL = np.load(r'D:\pycharm\TEAMWORK\Preprocess_3D\imageOR.npy')# 我的imageOR中,每一个文件除了3维的ndarray之外,还保存了标签lab,所以下面写成isometric_volume[0],所以如果你只有数组信息,直接将后面的[0]去掉即可vota

Python中使用numpy创建的array之间的乘法

import numpy as np numpy模块的array相乘时,有两种方式:一是矩阵形式,二是挨个相乘. 需要用矩阵形式相乘时,则要用np.dot()函数. 矩阵与矩阵: a = np.array([[1,2,3],[4,5,6],[7,8,9]]) c = a.copy() a*c 得出的结果是a和c中每个元素依次相乘,为3x3的矩阵 np.dot(a, c) 得到的结果是a和c进行矩阵相乘,为3x3的矩阵 矩阵与向量: a = np.array([[1,2,3],[4,5,6],[7