NumPy 基于已有数据创建数组

NumPy提供了使用现有数据创建数组的方法。

numpy.asarray

要使用列表或元组创建ndarray数组,可使用asarray函数。这个函数通常用于将python序列转换为numpy数组对象的场景中。

语法如下所示:

numpy.asarray(sequence,  dtype = None, order = None)  

参数:

  • sequence: 要被转换成ndarray数组的python序列。
  • dtype: 指定数组元素的数据类型。
  • order: 可以设置为’C’或’F’,表示c语言形式的内存顺序(按行排列),或者Fortran语言形式的内存顺序(按列排列)。默认值是C。

示例

使用列表创建numpy数组

import numpy as np  
l=[1,2,3,4,5,6,7]  
a = np.asarray(l);  
print(type(a))  
print(a)  

输出

<class 'numpy.ndarray'>
[1 2 3 4 5 6 7]

示例

使用元组创建一个ndarray数组

import numpy as np  
l=(1,2,3,4,5,6,7)     
a = np.asarray(l);  
print(type(a))  
print(a)  

输出

<class 'numpy.ndarray'>
[1 2 3 4 5 6 7]

示例

使用多个列表创建ndarray数组

import numpy as np  
l=[[1,2,3,4,5,6,7],[8,9]]  
a = np.asarray(l);  
print(type(a))  
print(a)  

输出

<class 'numpy.ndarray'>
[list([1, 2, 3, 4, 5, 6, 7]) list([8, 9])]

numpy.frombuffer

要使用指定的缓冲区创建数组,可以用frombuffer函数。

语法如下所示:

numpy.frombuffer(buffer, dtype = float, count = -1, offset = 0)  

参数:

  • buffer: 缓冲区对象(具有缓冲区接口)。
  • dtype: 指定数组元素的数据类型。
  • count: 指定数组长度。默认值是-1。
  • offset: 表示要读取的缓冲区起始位置。默认值为0。

示例

import numpy as np  
l = b'hello world'  
print(type(l))  
a = np.frombuffer(l, dtype = "S1")  
print(a)  
print(type(a))  

输出

<class 'bytes'>
[b'h' b'e' b'l' b'l' b'o' b' ' b'w' b'o' b'r' b'l' b'd']
<class 'numpy.ndarray'>

numpy.fromiter

要使用可迭代对象创建ndarray数组,可以使用fromiter函数。fromiter函数返回一个一维的ndarray数组。

语法如下所示:

numpy.fromiter(iterable, dtype, count = - 1)  

参数:

  • iterable: 表示一个可迭代的对象。
  • dtype: 指定数组元素的数据类型。
  • count: 表示要从数组中的缓冲区读取的项数。

示例

import numpy as np  
list = [0,2,4,6]  
it = iter(list)
x = np.fromiter(it, dtype = float, count = 2)  
print(x)  
print(type(x)) 

输出

[0. 2.]
<class 'numpy.ndarray'>


浙ICP备17015664号 浙公网安备 33011002012336号 联系我们 网站地图  
@2019 qikegu.com 版权所有,禁止转载