Numpy知識點總結(一)
索引
【1.創建numpy數組】 | 【2.numpy的數據類型】 | 【3.numpy數組的屬性】 | 【4.numpy.empty創建數組】 |
---|---|---|---|
【5.numpy.zeros創建數組】 | 【6.numpy.ones創建數組】 | 【7.numpy.arange創建數組】 | 【8.numpy.linspace創建一維等差數組】 |
【9.numpy.logspace創建等比數組】 |
1.創建numpy數組:
numpy.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0)
參數說明:
object 數組或嵌套的數列
dtype 數組元素的數據類型,可選
copy 對象是否需要複製,可選
order 創建數組的樣式,C爲行方向,F爲列方向,A爲任意方向(默認)
subok 默認返回一個與基類類型一致的數組
ndmin 指定生成數組的最小維度
# 一般用一下幾種方法創建numpy的ndarray對象
a = np.array([1,2,3]) #創建一個一維矩陣
a = np.array([[1, 2], [3, 4]]) #創建一個二維矩陣
a = np.array([1, 2, 3, 4, 5], ndmin = 2 ) #創建一個最小是二維的矩陣,若是一維自動轉爲二維
2.numpy的數據類型:
bool_ 布爾型數據類型(True 或者 False)
int_ 默認的整數類型(類似於 C 語言中的 long,int32 或 int64)
intc 與 C 的 int 類型一樣,一般是 int32 或 int 64
intp 用於索引的整數類型(類似於 C 的 ssize_t,一般情況下仍然是 int32 或 int64)
int8 字節(-128 to 127)
int16 整數(-32768 to 32767)
int32 整數(-2147483648 to 2147483647)
int64 整數(-9223372036854775808 to 9223372036854775807)
uint8 無符號整數(0 to 255)
uint16 無符號整數(0 to 65535)
uint32 無符號整數(0 to 4294967295)
uint64 無符號整數(0 to 18446744073709551615)
float_ float64 類型的簡寫
float16 半精度浮點數,包括:1 個符號位,5 個指數位,10 個尾數位
float32 單精度浮點數,包括:1 個符號位,8 個指數位,23 個尾數位
float64 雙精度浮點數,包括:1 個符號位,11 個指數位,52 個尾數位
complex_ complex128 類型的簡寫,即 128 位複數
complex64 複數,表示雙 32 位浮點數(實數部分和虛數部分)
complex128 複數,表示雙 64 位浮點數(實數部分和虛數部分)
# numpy 的數值類型實際上是 dtype 對象的實例
dt = np.dtype(np.int32)
print(dt) # int32
3.numpy數組的屬性
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 包含實際數組元素的緩衝區,由於一般通過數組的索引獲取元素,所以通常不需要使用這個屬性。
# ndarray.ndim 用於返回數組的維數,等於秩。
a = np.arange(24)
print (a.ndim) # 1
# ndarray.shape 表示數組的維度,返回一個元組,這個元組的長度就是維度的數目,即 ndim 屬性(秩)。比如,一個二維數組,其維度表示"行數"和"列數"。
a = np.array([[1,2,3],[4,5,6]])
print (a.shape) # (2, 3)
# ndarray.shape 也可以用於調整數組大小。
a = np.array([[1,2,3],[4,5,6]])
a.shape = (3,2)
print (a) #[[1 2],[3 4],[5 6]]
# NumPy 也提供了 reshape 函數來調整數組大小。
a = np.array([[1,2,3],[4,5,6]])
b = a.reshape(3,2)
print (b) #[[1 2],[3 4],[5 6]]
4.numpy.empty創建數組
numpy.empty(shape, dtype = float, order = ‘C’)
參數說明
shape 數組形狀
dtype 數據類型,可選
order 有"C"和"F"兩個選項,分別代表,行優先和列優先,在計算機內存中的存儲元素的順序。
x = np.empty([3,2], dtype = int)
print (x)
#[[ 6917529027641081856 5764616291768666155]
#[ 6917529027641081859 -5764598754299804209]
#[ 4497473538 844429428932120]]
【注】 數組元素爲隨機值,因爲它們未初始化。
5.numpy.zeros創建數組
numpy.zeros(shape, dtype = float, order = ‘C’)
參數說明
shape 數組形狀
dtype 數據類型,可選
order ‘C’ 用於 C 的行數組,或者 ‘F’ 用於 FORTRAN 的列數組
# 默認爲浮點數
x = np.zeros(5)
print(x) #[0. 0. 0. 0. 0.]
# 設置類型爲整數
y = np.zeros((5,), dtype = np.int)
print(y) #[0 0 0 0 0]
【注】 創建指定大小的數組,數組元素以 0 來填充
6.numpy.ones創建數組
numpy.ones(shape, dtype = None, order = ‘C’)
參數說明
shape 數組形狀
dtype 數據類型,可選
order ‘C’ 用於 C 的行數組,或者 ‘F’ 用於 FORTRAN 的列數組
# 默認爲浮點數
x = np.ones(5)
print(x) #[1. 1. 1. 1. 1.]
【注】 創建指定大小的數組,數組元素以 1 來填充
7.numpy.arange創建數組
numpy.arange(start, stop, step, dtype)
參數說明
start 起始值,默認爲0
stop 終止值(不包含)
step 步長,默認爲1
dtype 返回ndarray的數據類型,如果沒有提供,則會使用輸入數據的類型。
x = np.arange(5)
print (x) # [0 1 2 3 4]
x = np.arange(5, dtype = float)
print (x) # [0. 1. 2. 3. 4.]
# 設置了起始值、終止值及步長:
x = np.arange(10,20,2)
print (x) # [10 12 14 16 18]
8.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 時,生成的數組中會顯示間距,反之不顯示。
dtype ndarray 的數據類型
# 以下實例用到三個參數,設置起始點爲 1 ,終止點爲 10,數列個數爲 10。
a = np.linspace(1,10,10)
print(a) # [ 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.]
#將 endpoint 設爲 false,不包含終止值:
#如果將 endpoint 設爲 true,則會包含 20。
a = np.linspace(10, 20, 5, endpoint = False)
print(a) # [10. 12. 14. 16. 18.]
9.numpy.logspace創建等比數組
np.logspace(start, stop, num=50, endpoint=True, base=10.0, dtype=None)
參數說明
start 序列的起始值爲:base ** start
stop 序列的終止值爲:base ** stop。如果endpoint爲true,該值包含於數列中
num 要生成的等步長的樣本數量,默認爲50
endpoint 該值爲 true 時,數列中中包含stop值,反之不包含,默認是True。
base 對數 log 的底數。
dtype ndarray 的數據類型
# 默認底數是 10
a = np.logspace(1.0, 2.0, num = 10)
print (a)
#[ 10. 12.91549665 16.68100537 21.5443469 27.82559402
# 35.93813664 46.41588834 59.94842503 77.42636827 100. ]
# 將對數的底數設置爲 2 :
a = np.logspace(0,9,10,base=2)
print (a) # [ 1. 2. 4. 8. 16. 32. 64. 128. 256. 512.]