目錄
- 一、數據生成
- 1.1 手寫數組
- 1.2 序列數組
- 1.3 隨機數組
- 1.4 其他方式數組
- 二、數組屬性查看
- 三、數組索引
- 四、數組的方法
- 4.1 改變數組維度
- 4.2 數組拼接
- 4.3 數組分隔
- 4.4 算術運算
一、數據生成
1.1 手寫數組
a = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]) # 一維數組
b = np.array([[1, 2], [3, 4]]) #二維數組
1.2 序列數組
numpy.arange(start, stop, step, dtype),start默認0,step默認1
c = np.arange(0, 10, 1, dtype=int) # =np.arange(10) [0 1 2 3 4 5 6 7 8 9]
d = np.array([np.arange(1, 3), np.arange(4, 6)]) # 二維數組
# 不過為了避免麻煩,通常序列二維數組都是通過reshape進行重新組織
dd = c.reshape(2, 5) # 將一維數組重新組合成2行5列
1.3 隨機數組
numpy.random.random(size=None) 該方法返回[0.0, 1.0)范圍的隨機小數。
numpy.random.randint() 該方法返回[low, high)范圍的隨機整數。
該方法有三個參數low、high、size 三個參數。默認high是None,如果只有low,那范圍就是[0,low)。如果有high,范圍就是[low,high)
numpy.random.randn(d0,d1,…,dn) 該方法返回一個或一組樣本,具有正態分布
np.random.normal 指定期望和方差的正太分布
e = np.random.random(size=2) # 一維數組,元素兩個,[0.0,1.0]的隨機數
f = np.random.random(size=(2, 3)) # 兩行三列數組,[0.0,1.0]的隨機數
h = np.random.randint(10, size=3) # [0,10]范圍內的一行三列隨機整數
i = np.random.randint(5, 10, size=(2, 3)) # [5,10]范圍內的2行3列隨機整數
1.4 其他方式數組
numpy.zeros 創建指定大小的數組,數組元素以0 來填充
numpy.ones 創建指定形狀的數組,數組元素以1 來填充
numpy.empty 創建一個指定形狀(shape)、數據類型(dtype)且未初始化的數組,里面的元素的值是之前內存的值
np.linspace 創建一個一維數組,數組是一個等差數列構成的
numpy.logspace 創建一個于等比數
j = np.zeros((2, 5))
k = np.ones((2, 5))
l = np.linspace(1, 20, 10)
二、數組屬性查看
ndarray.ndim
darray.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 包含實際數組元素的緩沖區,由于一般通過數組的索引獲取元素,所以通常不需要使用這個屬性。
print('ndim:數組的秩(維度)'.center(20, '*'))
print('ndim:', i.shape[1])
三、數組索引
x = np.arange(1, 13) # 一維數組
a = x.reshape(4, 3) # 二維數組
print(‘x:', x)
print(‘a:', a)
3.1 一維數組的索引
print(x[2:])
print(x[3:8])
3.2 二維數組的索引
print(a[0]) # 第一行
print(a[2, 2]) # 第三行第4列
print(a[:, 2])
print(a[::2, 0]) # 所有奇數行第1列數據
print(a[(2, 1), (1, 2)]) # 第3行第2列,第2行第3列 = np.array((a[2,1],a[1,2]))取出來后在重新生成新的數組
print(a[-2]) # 獲取倒數第二行
print(a[::-1]) # 行倒序
print(a[::-1, ::-1]) # 行列倒序
四、數組的方法
4.1 改變數組維度
reshape將一維數組變成二維或者三維
ravel將三維數組變成一維數組,flatten將二維數組變成一維數組
4.2 數組拼接
使用numpy.hstack(a1,a2) 函數將兩個數組水平組合
numpy.vstack(a1,a2) 函數可以將兩個或多個數組垂直組合起來形成一個數組
使用numpy.concatenate((a1, a2, …), axis),控制axis參數的值也可以實現hstack和vstack的功能,axis=0等同于vstack、axis=1等同于hstack
4.3 數組分隔
b = np.split(x, 4) # 將一個一維數組四等分, 用b[1]的方式獲取每個塊的數據
# print(b[1])
c = np.split(a, 2, axis=0) # 二維數組的垂直分隔,按行分隔成兩部分
# print(c[0])
d = np.split(a, [2], axis=1) # 二維數組的水平分隔,按列分隔成兩部分
# print(d[0])
4.4 算術運算
加減乘除: add(),subtract(),multiply() 和divide()
np.sum() 求和
np.prod() 所有元素相乘
np.mean() 平均值
np.std() 標準差
np.var() 方差
np.median() 中數
np.power() 冪運算
np.sqrt() 開方
np.min() 最小值
np.max() 最大值
np.argmin() 最小值的下標
np.argmax() 最大值的下標
np.inf 無窮大
np.exp(10) 以e 為底的指數
np.log(10) 對數
到此這篇關于Python基礎之Numpy的基本用法詳解的文章就介紹到這了,更多相關Python Numpy用法內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- Python 機器學習庫 NumPy入門教程
- Python基礎之numpy庫的使用
- Python利用numpy實現三層神經網絡的示例代碼
- Python數據清洗工具之Numpy的基本操作
- python numpy中setdiff1d的用法說明
- Python Numpy之linspace用法說明
- python 將numpy維度不同的數組相加相乘操作
- python numpy.power()數組元素求n次方案例
- python中numpy.empty()函數實例講解
- python中numpy數組與list相互轉換實例方法
- Python OpenCV中的numpy與圖像類型轉換操作
- Python機器學習三大件之一numpy