NumPy - 来自现有数据的数组
在本章中,我们将讨论如何从现有数据创建数组。
numpy.asarray
这个函数类似于 numpy.array,只是它的参数更少。 此例程对于将 Python 序列转换为 ndarray 很有用。
numpy.asarray(a, dtype = None, order = None)
构造函数采用以下参数。
序号 | 参数 & 描述 |
---|---|
1 | a 以列表、元组列表、元组、元组的元组或列表的元组等任何形式输入数据 |
2 | dtype 默认情况下,输入数据的数据类型应用于生成的ndarray |
3 | order C(行主要)或 F(列主要)。 C是默认值 |
以下示例展示了如何使用 asarray 函数。
示例 1
# convert list to ndarray import numpy as np x = [1,2,3] a = np.asarray(x) print a
它的输出将如下所示 −
[1 2 3]
示例 2
# dtype is set import numpy as np x = [1,2,3] a = np.asarray(x, dtype = float) print a
现在,输出将如下所示 −
[ 1. 2. 3.]
示例 3
# ndarray from tuple import numpy as np x = (1,2,3) a = np.asarray(x) print a
它的输出是 −
[1 2 3]
示例 4
# ndarray from list of tuples import numpy as np x = [(1,2,3),(4,5)] a = np.asarray(x) print a
这里输出如下 −
[(1, 2, 3) (4, 5)]
numpy.frombuffer
此函数将缓冲区解释为一维数组。 任何公开缓冲区接口的对象都用作返回 ndarray 的参数。
numpy.frombuffer(buffer, dtype = float, count = -1, offset = 0)
构造函数采用以下参数。
序号 | 参数 & 描述 |
---|---|
1 | buffer 任何公开缓冲区接口的对象 |
2 | dtype 返回的 ndarray 的数据类型。 默认 float |
3 | count 读取的条数,默认-1表示所有数据 |
4 | offset 读取的起始位置。 默认为 0 |
示例
以下示例演示了frombuffer 函数的使用。
import numpy as np s = 'Hello World' a = np.frombuffer(s, dtype = 'S1') print a
这是它的输出 −
['H' 'e' 'l' 'l' 'o' ' ' 'W' 'o' 'r' 'l' 'd']
numpy.fromiter
此函数从任何可迭代对象构建一个ndarray 对象。 此函数返回一个新的一维数组。
numpy.fromiter(iterable, dtype, count = -1)
这里,构造函数采用以下参数。
序号 | 参数 & 描述 |
---|---|
1 | iterable 任何可迭代对象 |
2 | dtype 结果数组的数据类型 |
3 | count 要从迭代器中读取的项目数。 默认为-1,表示要读取的所有数据 |
以下示例展示了如何使用内置的 range() 函数返回列表对象。 此列表的迭代器用于形成 ndarray 对象。
示例 1
# create list object using range function import numpy as np list = range(5) print list
它的输出结果如下 −
[0, 1, 2, 3, 4]
示例 2
# obtain iterator object from list import numpy as np list = range(5) it = iter(list) # use iterator to create ndarray x = np.fromiter(it, dtype = float) print x
现在,输出将如下所示 −
[0. 1. 2. 3. 4.]