一篇博客入門Numpy模塊
(Numerical python)高性能科學計算和數據分析的基礎包。
功能:
- ndarray,一個具有矢量算術運算和複雜廣播能力的快速且節省空間的多維數組。
- 用於對數組數據進行快速運算的標準數學函數(無須循環)
- 線性代數,隨機數生成以及傅里葉變換功能
- 用於讀寫磁盤數據的工具以及用於操作內存映射文件的工具
本質上,Numpy期望用戶以使用“標量”的方式操作“向量”
即:操作一個矩陣向操作一個向量一樣輕鬆。
import numpy as np
a = np.array([1,2,3,4])
b = np.array([10,20,30,40])
c = a+b
print(c)
ndarray數組
創建
-
import numpy as np a = [1,2,3,4] b = np.array(a)
-
array_one = np.ones([10,10])
創建10行10列的數據爲浮點1的矩陣,同理還有zeros()
-
np.arange(1,10,2)
array([0,2,4,6,8]),從元素0開始依次遞增2!!!10是娶不到的
隨機數
- 設置隨機種子
- np.random.seed(10)
- 均勻分佈
- np.random.rand(10,10) 創建指定形狀的數組(範圍在0,1之間)
- np.random.uniform(0,100) 創建指定範圍內的一個數
- np.random.randint(0,100) 創建指定範圍內的一個整數
- 正態分佈
- np.random.normal(1.75,0.1,(2,3)) 給定均值/標準差/維度 的正態分佈
- np.random.randn(10,10) 指定形狀的標準正態分佈
隨機數的相關操作
打亂shuffle
array([[1,2],[3,4]
,[5,6],[7,8]])
np.random.shuffle(a)
二維數組,只有行的順序被打亂了,列的順序不變
查看數組屬性
用法 | 說明 |
---|---|
b.size | 數組元素的個數(shape裏面每一個分量的乘積) |
b.shape | 數組形狀 |
b.ndim | 數組維度 |
b.dtype | 數組元素類型 |
切片和索引
attention:
arr[5:8] = 12
在list中會報錯,3個元素應該被賦三個值,但是在ndarray中可以將所有元素賦一個值
三維數組的切片索引
變形之前的元素個數和變形之後的元素個數應該保持一直。6*4 == 24
切片分成多個數組
數組&標量之間的運算
數組&數組---------------加減乘除------------對每個位置分別操作
數學和統計方法
這是對全局進行操作,however有些人希望針對行或者針對列進行某些操作。
指定計算範圍的統計方法—axis
基本的數學和統計學的方法
線性代數
矩陣相乘
x.dot(y) #相當於np.dot(x,y)