一、numpy庫
功能介紹
1、一個強大的N維數組對象Array;
2、比較成熟的(廣播)函數庫;
3、用於整合C/C++和Fortran代碼的工具包;
4、實用的線性代數、傅里葉變換和隨機數生成函數。numpy和稀疏矩陣運算包scipy配合使用更加方便。
array用法
numpy.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0)
|
名稱
|
描述
|
|
object
|
數組或嵌套的數列
|
|
dtype
|
數組元素的數據類型,可選
|
|
copy
|
對象是否需要複製,可選
|
|
order
|
創建數組的樣式,C為行方向,F為列方向,A為任意方向(默認)
|
|
subok
|
默認返回一個與基類類型一致的數組
|
|
ndmin
|
指定生成數組的最小維度
|
#一維輸出
import numpy as np
a = np.array([1,2,3])
print (a)
->[1,2,3]
# 二維輸出
a = np.array([[1, 2], [3, 4]])
print (a)
->[[1, 2]
[3,4]]
# 最小維度
a = np.array([1, 2, 3,4,5], ndmin = 2)
print (a)
->[[1, 2, 3, 4, 5]]
# 參數
a = np.array([1, 2, 3], dtype = complex)
print (a)
->[ 1.+0.j, 2.+0.j, 3.+0.j]
ndarray對象屬性用法
|
屬性
|
説明
|
|
ndarray.ndim
|
秩,即軸的數量或維度的數量
|
|
ndarray.shape
|
數組的維度,對於矩陣,n 行 m 列
|
|
ndarray.size
|
數組元素的總個數,相當於 .shape 中 n*m 的值
|
|
ndarray.dtype
|
ndarray 對象的元素類型
|
|
ndarray.itemsize
|
ndarray 對象中每個元素的大小,以字節為單位
|
|
ndarray.flags
|
ndarray 對象的內存信息
|
|
ndarray.real
|
ndarray元素的實部
|
|
ndarray.imag
|
ndarray 元素的虛部
|
|
ndarray.data
|
包含實際數組元素的緩衝區,由於一般通過數組的索引獲取元素,所以通常不需要使用這個屬性。
|
# ndim 用於返回數組的維數,等於秩。
import numpy as np
a = np.arange(2)
print(a.ndim) # a 現只有一個維度
# 現在調整其大小
b = a.reshape(2,4,3) # b 現在擁有三個維度
print (b.ndim)
->1
3
# shape 表示數組的維度,返回一個元組,這個元組的長度就是維度的數目,即 ndim 屬性(秩)。比如,一個二維數組,其維度表示"行數"和"列數"。shape 也用於調整數組大小
a = np.array([[1,2,3],[4,5,6]])
print (a.shape)
->(2, 3)
# shape調整數組大小
a = np.array([[1,2,3],[4,5,6]])
a.shape = (3,2)
print (a)
->[[1 2]
[3 4]
[5 6]]
# reshape調整數組大小
a = np.array([[1,2,3],[4,5,6]])
b = a.reshape(3,2)
print (b)
->[[1 2]
[3 4]
[5 6]]
empty用法
numpy.empty(shape, dtype = float, order = 'C')
|
參數
|
描述
|
|
shape
|
數組形狀
|
|
dtype
|
數據類型,可選
|
|
order
|
有"C"和"F"兩個選項,分別代表,行優先和列優先,在計算機內存中的存儲元素的順序。
|
# 創建空數組
import numpy as np
x = np.empty([3,2], dtype = int)
print (x)
->[[ 6917529027641081856 5764616291768666155]
[ 6917529027641081859 -5764598754299804209]
[ 4497473538 844429428932120]]
//數組元素為隨機值,因為它們未初始化。
zeros用法(ones類似:以1填充)
numpy.zeros(shape, dtype = float, order = 'C')
|
參數
|
描述
|
|
shape
|
數組形狀
|
|
dtype
|
數據類型,可選
|
|
order
|
'C' 用於 C 的行數組,或者 'F' 用於 FORTRAN 的列數組
|
# 用0填充數組
# 默認為浮點數
x = np.zeros(5)
print(x)
# 設置類型為整數
y = np.zeros((5,), dtype = np.int)
print(y)
# 自定義類型
z = np.zeros((2,2), dtype = [('x', 'i4'), ('y', 'i4')])
print(z)
->[0. 0. 0. 0. 0.]
[0 0 0 0 0]
[[(0, 0) (0, 0)]
[(0, 0) (0, 0)]]