這一章中,我們會(huì)討論如何從現(xiàn)有數(shù)據(jù)創(chuàng)建數(shù)組。
numpy.asarray
此函數(shù)類(lèi)似于numpy.array
,除了它有較少的參數(shù)。 這個(gè)例程對(duì)于將 Python 序列轉(zhuǎn)換為ndarray
非常有用。
numpy.asarray(a, dtype = None, order = None)
構(gòu)造器接受下列參數(shù):
序號(hào) | 參數(shù)及描述 |
---|---|
1. | a 任意形式的輸入?yún)?shù),比如列表、列表的元組、元組、元組的元組、元組的列表 |
2. | dtype 通常,輸入數(shù)據(jù)的類(lèi)型會(huì)應(yīng)用到返回的ndarray |
3. | order 'C' 為按行的 C 風(fēng)格數(shù)組,'F' 為按列的 Fortran 風(fēng)格數(shù)組 |
下面的例子展示了如何使用asarray
函數(shù):
# 將列表轉(zhuǎn)換為 ndarray
import numpy as np
x = [1,2,3]
a = np.asarray(x)
print a
輸出如下:
[1 2 3]
# 設(shè)置了 dtype
import numpy as np
x = [1,2,3]
a = np.asarray(x, dtype = float)
print a
輸出如下:
[ 1. 2. 3.]
# 來(lái)自元組的 ndarray
import numpy as np
x = (1,2,3)
a = np.asarray(x)
print a
輸出如下:
[1 2 3]
# 來(lái)自元組列表的 ndarray
import numpy as np
x = [(1,2,3),(4,5)]
a = np.asarray(x)
print a
輸出如下:
[(1, 2, 3) (4, 5)]
numpy.frombuffer
此函數(shù)將緩沖區(qū)解釋為一維數(shù)組。 暴露緩沖區(qū)接口的任何對(duì)象都用作參數(shù)來(lái)返回ndarray
。
numpy.frombuffer(buffer, dtype = float, count = -1, offset = 0)
構(gòu)造器接受下列參數(shù):
序號(hào) | 參數(shù)及描述 |
---|---|
1. | buffer 任何暴露緩沖區(qū)借口的對(duì)象 |
2. | dtype 返回?cái)?shù)組的數(shù)據(jù)類(lèi)型,默認(rèn)為float |
3. | count 需要讀取的數(shù)據(jù)數(shù)量,默認(rèn)為-1 ,讀取所有數(shù)據(jù) |
4. | offset 需要讀取的起始位置,默認(rèn)為0 |
下面的例子展示了frombuffer
函數(shù)的用法。
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
此函數(shù)從任何可迭代對(duì)象構(gòu)建一個(gè)ndarray
對(duì)象,返回一個(gè)新的一維數(shù)組。
numpy.fromiter(iterable, dtype, count = -1)
構(gòu)造器接受下列參數(shù):
序號(hào) | 參數(shù)及描述 |
---|---|
1. | iterable 任何可迭代對(duì)象 |
2. | dtype 返回?cái)?shù)組的數(shù)據(jù)類(lèi)型 |
3. | count 需要讀取的數(shù)據(jù)數(shù)量,默認(rèn)為-1 ,讀取所有數(shù)據(jù) |
以下示例展示了如何使用內(nèi)置的range()
函數(shù)返回列表對(duì)象。 此列表的迭代器用于形成ndarray
對(duì)象。
# 使用 range 函數(shù)創(chuàng)建列表對(duì)象
import numpy as np
list = range(5)
print list
輸出如下:
[0, 1, 2, 3, 4]
# 從列表中獲得迭代器
import numpy as np
list = range(5)
it = iter(list)
# 使用迭代器創(chuàng)建 ndarray
x = np.fromiter(it, dtype = float)
print x
輸出如下:
[0. 1. 2. 3. 4.]