NumPy建立數組

[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.])
'''
相關文章
相關標籤/搜索