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.]