Numpy 生成 Bool型数组、一维转多维数组reshape、多维转一维数组、替换数组元素、提取数组元素、数组交集、差集、过滤数组元素、二维数组反转行、交换数组维度
生活随笔
收集整理的這篇文章主要介紹了
Numpy 生成 Bool型数组、一维转多维数组reshape、多维转一维数组、替换数组元素、提取数组元素、数组交集、差集、过滤数组元素、二维数组反转行、交换数组维度
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. 創建一個 [3,5] 所有元素為 True 的數組
In [162]: b = np.ones((3,5), dtype=bool)In [163]: b
Out[163]:
array([[ True, True, True, True, True],[ True, True, True, True, True],[ True, True, True, True, True]])In [164]:
2. 一維數組轉二維數組
In [164]: a = np.array([1,2,3,4,5,6])In [165]: a
Out[165]: array([1, 2, 3, 4, 5, 6])In [166]: a.reshape((2,3))
Out[166]:
array([[1, 2, 3],[4, 5, 6]])In [167]: a.reshape(2,-1)
Out[167]:
array([[1, 2, 3],[4, 5, 6]])
In [168]:
a.reshape(2,-1) 其實這里面的 -1 代表自動生成的意思,因為一共 6 個元素,已經確定了 2 行,那么只能是每行 3 個元素了。
3. 數組所有奇數替換為 -1
In [167]: a
Out[167]: array([1, 2, 3, 4, 5, 6])In [168]: b = a.reshape((2,3))In [169]: b
Out[169]:
array([[1, 2, 3],[4, 5, 6]])In [170]: b[b%2==1] = -1In [171]: b
Out[171]:
array([[-1, 2, -1],[ 4, -1, 6]])In [172]:
4. 提取出數組中所有奇數
In [176]: a = np.array([1,2,3,4,5])In [177]: a
Out[177]: array([1, 2, 3, 4, 5])In [178]: a[a%2==1]
Out[178]: array([1, 3, 5])In [179]:
5. 2 個 NumPy 數組的交集
使用 np.intersect1d 函數可以求兩個數組的交集
In [179]: a
Out[179]: array([1, 2, 3, 4, 5])In [180]: b = np.array([2,3,6,7])In [181]: b
Out[181]: array([2, 3, 6, 7])In [183]: np.intersect1d(a,b)
Out[183]: array([2, 3])In [184]:
6. 2 個 NumPy 數組的差集
np.setdiff1d(a, b) 可以計算兩個數組 a 和 b 的差集。
In [186]: a
Out[186]: array([1, 2, 3, 4, 5])In [187]: b
Out[187]: array([2, 3, 6, 7])In [188]: np.setdiff1d(a, b)
Out[188]: array([1, 4, 5])In [189]: np.setdiff1d(b, a)
Out[189]: array([6, 7])In [190]:
7. 篩選出指定區間內的所有元素
注意:(m >2),必須要添加一對括號。
In [193]: m = np.arange(10).reshape(2, 5)In [194]: m
Out[194]:
array([[0, 1, 2, 3, 4],[5, 6, 7, 8, 9]])In [195]: m[(m > 2) & (m < 6)]
Out[195]: array([3, 4, 5])In [196]:
8. 交換二維數組的多列
In [196]: m =np.arange(10).reshape((2,5))In [197]: m
Out[197]:
array([[0, 1, 2, 3, 4],[5, 6, 7, 8, 9]])In [198]: m[:,[1,0,4,3,2]]
Out[198]:
array([[1, 0, 4, 3, 2],[6, 5, 9, 8, 7]])In [199]:
9. 二維數組,反轉行
In [199]: m =np.arange(10).reshape(2,5)In [200]: m
Out[200]:
array([[0, 1, 2, 3, 4],[5, 6, 7, 8, 9]])In [201]: m[::-1]
Out[201]:
array([[5, 6, 7, 8, 9],[0, 1, 2, 3, 4]])In [202]:
10. 生成數值 5~10、shape 為 (3,5) 的隨機浮點數
In [203]: np.random.seed(100)In [204]: np.random.randint(5, 10, (3,5))
Out[204]:
array([[5, 5, 8, 5, 7],[9, 7, 7, 7, 7],[6, 5, 5, 9, 8]])In [205]: np.random.rand(3,5)
Out[205]:
array([[0.20920212, 0.18532822, 0.10837689, 0.21969749, 0.97862378],[0.81168315, 0.17194101, 0.81622475, 0.27407375, 0.43170418],[0.94002982, 0.81764938, 0.33611195, 0.17541045, 0.37283205]])In [206]: np.random.randint(5, 10, (3,5)) + np.random.rand(3,5)
Out[206]:
array([[5.89054594, 7.5769015 , 6.74247969, 6.63018394, 8.58184219],[7.02043913, 8.21002658, 5.54468488, 6.76911517, 5.25069523],[9.28589569, 7.85239509, 5.97500649, 5.88485329, 7.35950784]])In [207]:
11. 數組維度交換
In [60]: a = np.arange(10).reshape(2,5)In [61]: a
Out[61]:
array([[0, 1, 2, 3, 4],[5, 6, 7, 8, 9]])In [62]: b = a.swapaxes(0, 1)In [63]: b.shape
Out[63]: (5, 2)In [64]:
swapaxes() 將一個數組的第 0 軸和第 1 軸進行了交換,由 2 行 5 列變成了 5 行 2列。
12. 多維數組轉一維數組
In [65]: a = np.arange(10).reshape(2,5)In [66]: a
Out[66]:
array([[0, 1, 2, 3, 4],[5, 6, 7, 8, 9]])In [67]: a.reshape(-1)
Out[67]: array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])In [68]: a
Out[68]:
array([[0, 1, 2, 3, 4],[5, 6, 7, 8, 9]])In [70]: a.flatten()
Out[70]: array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])In [71]: a
Out[71]:
array([[0, 1, 2, 3, 4],[5, 6, 7, 8, 9]])In [72]: a.ravel()
Out[72]: array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])In [73]:
可以看出我們通過 reshape(-1) 、flatten() 和 ravel() 函數都可以將多維數組轉換為 1 維數組。
總結
以上是生活随笔為你收集整理的Numpy 生成 Bool型数组、一维转多维数组reshape、多维转一维数组、替换数组元素、提取数组元素、数组交集、差集、过滤数组元素、二维数组反转行、交换数组维度的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Numpy 一维、二维数组、size/d
- 下一篇: Numpy 统计变量(平均值、标准差、方