機器學習第一天----瞭解Numpy基礎包
阿新 • • 發佈:2020-10-07
什麼是Numpy基礎包?
NumPy是Python中演算法擴充套件包,它是一個Python庫,提供多維陣列物件,各種派生物件(如掩碼陣列和矩陣),
以及用於陣列快速操作的各種例程,包括數學,邏輯,形狀操作,排序,選擇,I / O離散傅立葉變換,基本線性代數,基本統計運算,隨機模擬等等。
NumPy 最重要的一個特點是其 N 維陣列物件 ndarray,它是一系列同類型資料的集合,以 0 下標為開始進行集合中元素的索引。ndarray 物件是用於存放同類型元素的多維陣列。
ndarray 中的每個元素在記憶體中都有相同儲存大小的區域。接下來我只敘述目前我使用到的方法,後續遇到仍會補充,其具體詳情可查閱: https://www.runoob.com/numpy/numpy-dtype.html
1.建立ndarray陣列
# coding:utf-8 import numpy as np a = np.array([0, 1, 2, 3, 4, 5.]) print(a)
其結果為
[0. 1. 2. 3. 4. 5.]
2.切片與索引
a.ndarray陣列可通過內建slice(start,end,step)來擷取陣列中的元素,但不包括介素元素
# coding:utf-8 import numpy as np a = np.array([0, 1, 2, 3, 4, 5]) print(a) s=slice(0,4,2) print(a[s])
其結果為:
[0 1 2 3 4 5]
[0 2]
b.可以通過冒號分隔切片引數start:stop:step來進行切片操作
# coding:utf-8 import numpy as np a = np.array([0, 1, 2, 3, 4, 5]) print(a) s=slice(0,4,2) print(a[s]) b=a[0:4:2] print(a[b])
其結果為:
[0 1 2 3 4 5] [0 2] [0 2]
對陣列的操作
1.reshape(arr, newshape, order='C'),在不改變資料的情況下改變陣列形狀。
- arr要修改成陣列的形狀
- newshape是整數,要與要修改的形狀相適應
- order:'C' -- 按行,'F' -- 按列,'A' -- 原順序,'k' -- 元素在記憶體中的出現順序。
# coding:utf-8 import numpy as np a = np.array([0, 1, 2, 3, 4, 5]) print("原始陣列:",a) b=a.reshape(3,2) print("改變後的陣列:\n",b)
其結果為:
原始陣列: [0 1 2 3 4 5] 改變後的陣列: [[0 1] [2 3] [4 5]]
2.ndarray.flat 是一個數組元素迭代器
# coding:utf-8 import numpy as np a = np.array([0, 1, 2, 3, 4, 5]) print("原始陣列:",a) b=a.reshape(3,2) print("改變後的陣列:\n",b) print("迭代輸出:") for i in b.flat: print(i)
其結果為:
原始陣列: [0 1 2 3 4 5] 改變後的陣列: [[0 1] [2 3] [4 5]] 迭代輸出: 0 1 2 3 4 5