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
此函数将一个缓冲区解释为一维数组。将任何公开缓冲区接口的对象作为参数返回一个 ndrray 。
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.]