NumPy來自現有數據的數組
NumPy - 來自現有數據的數組
這一章中,我們會討論如何從現有數據創建數組。
numpy.asarray
此函數類似於numpy.array
,除了它有較少的參數。 這個例程對於將 Python 序列轉換爲ndarray
非常有用。
numpy.asarray(a, dtype = None, order = None)
構造器接受下列參數:
序號
參數及描述
1.
a
任意形式的輸入參數,比如列表、列表的元組、元組、元組的元組、元組的列表
2.
dtype
通常,輸入數據的類型會應用到返回的ndarray
3.
order
'C'
爲按行的 C 風格數組,'F'
爲按列的 Fortran 風格數組
下面的例子展示瞭如何使用asarray
函數:
示例 1
# 將列表轉換爲 ndarray
import numpy as np
x = [1,2,3]
a = np.asarray(x)
print a
輸出如下:
[1 2 3]
示例 2
# 設置了 dtype
import numpy as np
x = [1,2,3]
a = np.asarray(x, dtype = float)
print a
輸出如下:
[ 1. 2. 3.]
示例 3
# 來自元組的 ndarray
import numpy as np
x = (1,2,3)
a = np.asarray(x)
print a
輸出如下:
[1 2 3]
示例 4
# 來自元組列表的 ndarray
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
返回數組的數據類型,默認爲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
# 使用 range 函數創建列表對象
import numpy as np
list = range(5)
print list
輸出如下:
[0, 1, 2, 3, 4]
示例 2
# 從列表中獲得迭代器
import numpy as np
list = range(5)
it = iter(list)
# 使用迭代器創建 ndarray
x = np.fromiter(it, dtype = float)
print x
輸出如下:
[0. 1. 2. 3. 4.]