ndarray的建立
numpy.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0)
複製程式碼
多於一維的
# 多於一個維度
import numpy as np
a = np.array([[1, 2], [3, 4]])
print(a)
複製程式碼
輸出:
[[1, 2]
[3, 4]]
複製程式碼
dtype引數的
# dtype 引數
import numpy as np
a = np.array([1, 2, 3], dtype = complex)
print(a)
複製程式碼
輸出:
[ 1.+0.j, 2.+0.j, 3.+0.j]
複製程式碼
numpy.empty
它建立指定形狀和dtype的未初始化陣列。(型別預設float)
x = np.empty([3,2])
複製程式碼
注意:陣列元素為隨機值,因為它們未初始化。
numpy.ones
返回特定大小,以 1 填充的新陣列。
# 建立10行10列的數值為浮點1的矩陣,預設型別為 float
array_one = np.ones([10, 10])
複製程式碼
numpy.zeros
返回特定大小,以 0 填充的新陣列。
# 建立10行10列的數值為浮點0的矩陣,預設型別為 float
array_zero = np.zeros([10, 10])
複製程式碼
附 NumPy 中定義的不同標量資料型別:
NumPy - 陣列屬性
ndarray.shape
這一陣列屬性返回一個包含陣列維度的元組,它也可以用於調整陣列大小。
例一
import numpy as np
a = np.array([[1,2,3],[4,5,6]])
print(a.shape)
複製程式碼
輸出:
(2, 3)
複製程式碼
例二
# 這會調整陣列大小
import numpy as np
a = np.array([[1,2,3],[4,5,6]])
a.shape = (3,2)
print(a)
複製程式碼
輸出:
[[1, 2]
[3, 4]
[5, 6]]
複製程式碼
例三
NumPy 也提供了reshape函式來調整陣列大小。
import numpy as np
a = np.array([[1,2,3],[4,5,6]]).reshape(3,2)
print(a)
複製程式碼
輸出:
[[1, 2]
[3, 4]
[5, 6]]
複製程式碼
檢視陣列的屬性
NumPy - 來自數值範圍的陣列
numpy.arange
這個函式返回ndarray物件,包含給定範圍內的等間隔值。
x = np.arange(10,20,2) #起始,終止,步長
NumPy - 切片和索引
ndarray物件的內容可以通過索引或切片來訪問和修改。有三種可用的索引方法型別: 欄位訪問,基本切片和高階索引。
基本切片是 Python 中基本切片概念到 n 維的擴充套件。 通過將start,stop和step引數提供給內建的slice函式來構造一個 Python slice物件。 此slice物件被傳遞給陣列來提取陣列的一部分。
import numpy as np
a = np.arange(10)
s = slice(2,7,2)
print(a[s])
#或者
import numpy as np
a = np.arange(10)
b = a[2:7:2]
#print(b)
複製程式碼
都輸出
[2 4 6]
複製程式碼
NumPy - 高階索引
有兩種型別的高階索引:整數和布林值。
整數索引
這種機制有助於基於 N 維索引來獲取陣列中任意元素。 每個整數陣列表示該維度的下標值。 當索引的元素個數就是目標ndarray的維度時,會變得相當直接。
以下示例獲取了ndarray物件中每一行指定列的一個元素。 因此,行索引包含所有行號,列索引指定要選擇的元素。
布林索引
當結果物件是布林運算(例如比較運算子)的結果時,將使用此型別的高階索引。
廣播
廣播是指 NumPy 在算術運算期間處理不同形狀的陣列的能力。較小的陣列會廣播到較大陣列的大小,以便使它們的形狀可相容。
轉置
numpy.ndarray.T
numpy.transpose
Numpy計算
條件運算
輸出: 或者統計運算
指定軸最大值
amax(引數1: 陣列; 引數2: axis=0/1; 0表示列1表示行)
最小值為numpy.amin指定軸平均值mean