[TOC]python
1. NumPy建立數組
1.1 numpy.empty
建立一個指定形狀(shape)、數據類型(dtype)且未初始化的數組數組
np.empty(shape, dtype=float, order='C') ''' 參數: shape:數組形狀 dtype:數據類型 order:有"C"和"F"兩個選項,分別表明,行優先和列優先,在計算機內存中的存儲元素的順序。 '''
import numpy as np np.empty([3, 2], dtype=int) ''' array([[ 0, 0], [ 0, 1072693248], [ 0, 1073741824]]) '''
注意 − 數組元素爲隨機值,由於它們未初始化。函數
1.2 numpy.zeros
建立指定形狀的數組,數組元素以0來填充。spa
np.zeros(shape, dtype=float, order='C')
import numpy as np # 默認爲浮點型 np.zeros(5) # 設置爲整型 np.zeros((5,), dtype=np.int) # 自定義類型 np.zeros((2, 2), dtype=[('x', 'i4'), ('y', 'i4')])
1.3 numpy.ones
建立指定形狀的數組,數組元素以1來填充。code
np.ones(shape, dtype=float, order='C')
import numpy as np # 默認爲浮點型 np.ones(5) # 自定義類型 np.ones((2, 2), dtype=int)
1.4 numpy.eye
根據指定形狀建立單位矩陣。對象
np.eye(N, M=None, k, dtype=<class 'float'>, order='C') ''' 參數: N:指定的行數。 M:指定的列數,若是爲None,則等於N。 k:對角線的下標,默認爲0表示的是主對角線,負數表示的是低對角,正數表示的是高對角。 '''
import numpy as np np.eye(3) ''' 結果爲: array([[1., 0., 0.], [0., 1., 0.], [0., 0., 1.]]) ''' np.eye(3, 3, k=1) ''' 結果爲: array([[0., 1., 0.], [0., 0., 1.], [0., 0., 0.]]) '''
2. NumPy從已有數組建立數組
2.1 numpy.asarray
相似於numpy.array,可是隻有三個參數內存
np.asarray(a, dtype=None, order=None) # a:任意形式的輸入參數,能夠是,列表, 列表的元組, 元組, 元組的元組, 元組的列表,多維數組
2.2 numpy.frombuffer
用於實現動態數組,接受buffer輸入參數,以流的形式讀入轉化成ndarray對象。it
np.frombuffer(buffer, dtype=float, count=-1, offset=0) ''' 參數: buffer:能夠是任意對象,會以流的形式讀入。 count:讀取的數據數量,默認爲-1,讀取全部數據。 offset:讀取的起始位置,默認爲0。 '''
import numpy as np st = b'hello world' np.frombuffer(s, dtype='S1') # 結果爲:array([b'H', b'e', b'l', b'l', b'o', b' ', b'W', b'o', b'r', b'l', b'd'])
2.3 numpy.fromiter
從可迭代對象中創建ndarray對象,並返回一維數組。class
np.fromiter(iterable, dtype, count=-1) ''' 參數: iterable:可迭代對象 count:讀取的數據數量,默認爲-1,讀取全部數據 '''
import numpy as np lst = range(5) it = iter(lst) # 使用迭代器建立ndarray對象 np.fromiter(it, dtype=float) # 結果爲:array([0., 1., 2., 3., 4.])
3. NumPy從數值範圍建立數組
3.1 numpy.arange
使用arange函數建立數值範圍並返回ndarray對象。import
np.arange(start, stop, step, dtype) ''' 參數: start:起始值,默認爲0 stop:終止值,不包含 step:步長,默認爲1 '''
import numpy as np # 生成0-5的數組 np.arange(5) # 返回類型爲float np.arange(5, dtype=float) # 設置起始值,終止值,步長 np.arange(1, 10, 2)
3.2 numpy.linspace
建立一個一維數組,且數組爲等差數列。
np.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None) ''' 參數: start:起始值 stop:終止值,若是endpoint爲True,則包含 num:要生成的等步長的樣本數量,默認爲50 endpoint: 該值爲 true 時,數列中中包含stop值,反之不包含,默認是True。 retstep: 若是爲 True 時,生成的數組中會顯示間距,反之不顯示。 '''
import numpy as np # 元素全是1的等差數列 np.linspace(1, 1, 10) # array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1.]) # 不包含終止值 np.linspace(10, 20, 5, endpoint=False) # array([10., 12., 14., 16., 18., 20.]) # 設置間距 np.linspace(1, 10, 10, retstep=True) # array([1., 2., 3., 4., 5., 6., 7., 8., 9., 10.], 1.0) # 拓展 np.linspace(1,10,10).reshape([10,1]) ''' 結果爲: array([[1.] [2.] [3.] [4.] [5.] [6.] [7.] [8.] [9.] [10.]]) '''
3.3 numpy.logspace
建立一個等比數列
np.logspace(start, stop, num=50, endpoint=True, base=10.0, dtype=None) ''' 參數: base:對數log的底數 其餘參數np.linspace() '''
import numpy as np # 默認以10爲底數 np.logspace(1.0, 2.0, num=10) ''' 結果爲: array([10., 12.91549665, 16.68100537, 21.5443469, 27.82559402, 35.93813664, 46.41588834, 59.94842503, 77.42636827, 100.]) ''' # 設置以2爲底數 np.logspace(0, 9, 10, base=2) ''' 結果爲: array([1., 2., 4., 8., 16., 32., 64., 128., 256., 512.]) '''