文章目錄
- numpy
-
-
- array
- ndarray
- 生成0和1的數組
- 建立一個制定形狀的數組,不初始化
- 建立一個指定形狀的數組,不初始化-2
- np.arrange
-
- 完整輸出numpy
numpy
Numpy(Numerical Python)是一個開源的Python科學計算庫,用于快速處理任意次元的數組。
Numpy支援常見的數組和矩陣操作。對于同樣的數值計算任務,使用Numpy比直接使用Python要簡潔的多。
Numpy使用
ndarray
對象來處理多元數組,該對象是一個快速而靈活的大資料容器。
import numpy as np
# 建立ndarray
score = np.array(
[[80, 89, 86, 67, 79],
[78, 97, 89, 67, 81],
[90, 94, 78, 67, 74],
[91, 91, 90, 67, 69],
[76, 87, 75, 67, 86],
[70, 79, 84, 67, 84],
[94, 92, 93, 67, 64],
[86, 85, 83, 67, 80]])
score
# 輸出
array([[80, 89, 86, 67, 79],
[78, 97, 89, 67, 81],
[90, 94, 78, 67, 74],
[91, 91, 90, 67, 69],
[76, 87, 75, 67, 86],
[70, 79, 84, 67, 84],
[94, 92, 93, 67, 64],
[86, 85, 83, 67, 80]])
array
numpy 子產品的 array 函數可以生成多元數組。例如,如果要生成一個二維數組,需要向 array 函數傳遞一個清單類型的參數。每一個清單元素是一維的 ndarray 類型數組,作為二維數組的行。另外,通過 ndarray 類的 shape 屬性可以獲得數組每一維的元素個數(元組形式), 也可以通過 shape[n]形式獲得每一維的元素個數,其中 n 是次元,從 0 開始。
數組預設要求:每行元素數量相等。
parameters:
- object:數組或嵌套的數列
- dtype:數組元素的資料類型,可選
- copy:對象是否需要複制,可選
- order:建立數組的樣式,C為行方向,F為列方向,A為任意方向(預設)
- subok:預設傳回一個與基類類型一緻的數組
- ndmin:指定生成數組的最小次元
import numpy as np
a=np.array([1,2,3,4,5,6],ndmin=3)
print(a)
# output
[[[1 2 3 4 5 6]]]
ndarray
屬性方法:
- ndarray.shape:傳回數組次元的元組
- ndarray.ndim:傳回數組維數
- ndarray.size:傳回數組中的元素數量
- ndarray.itemsize:一個數組元素的長度(位元組)
- ndarray.dtype:數組元素的類型
import numpy as np
import numpy as np
a=np.array([[1,2,3],[4,5,6]])
b=np.array([1,2,3,4])
c=np.array([[[1,2],[3,4],[5,6],[7,8]],[[1,2],[3,4],[5,6],[7,8]]])
print(a.shape)
print(b.shape)
print(c.shape)
# output
(2, 3) # 二維數組
(4,) # 一維數組
(2, 4, 2) # 三維數組
生成0和1的數組
- np.ones(shape, dtype)
import numpy as np
ones=np.ones([2,3,4])
print(ones)
# output
[[[1. 1. 1. 1.]
[1. 1. 1. 1.]
[1. 1. 1. 1.]]
[[1. 1. 1. 1.]
[1. 1. 1. 1.]
[1. 1. 1. 1.]]]
- np.ones_like(a, dtype)
import numpy as np
a=np.zeros([2,3,1])
ones=np.ones_like(a)
print(a)
# output
[[[0.]
[0.]
[0.]]
[[0.]
[0.]
[0.]]]
- np.zeros(shape, dtype)
import numpy as np
zeros=np.zeros([2,3,4])
print(zeros)
[[[0. 0. 0. 0.]
[0. 0. 0. 0.]
[0. 0. 0. 0.]]
[[0. 0. 0. 0.]
[0. 0. 0. 0.]
[0. 0. 0. 0.]]]
- np.zeros_like(a, dtype)
import numpy as np
a=np.ones([2,3,3])
zeros=np.zeros_like(a)
print(a)
# output
[[[1. 1. 1.]
[1. 1. 1.]
[1. 1. 1.]]
[[1. 1. 1.]
[1. 1. 1.]
[1. 1. 1.]]]
建立一個制定形狀的數組,不初始化
-
np.empy()
numpy.empty 方法用來建立一個指定形狀(shape)、資料類型(dtype)且未初始化的 數組,裡面的元素的值是之前記憶體的值:
- shape:數組形狀
- dtype:數組類型
- order:C,行優先;F列優先
import numpy as np
a=np.empty([3,2,4])
print(a)
#output
[[[6.23042070e-307 1.89146896e-307 1.37961302e-306 1.05699242e-307]
[1.95821439e-306 7.56598449e-307 1.11261027e-306 1.24610383e-306]]
[[1.69118108e-306 8.06632139e-308 1.20160711e-306 1.69119330e-306]
[1.29062229e-306 1.60217812e-306 1.37961370e-306 8.45592576e-307]]
[[1.37961981e-306 1.42418172e-306 2.04712906e-306 7.56589622e-307]
[1.11258277e-307 8.90111708e-307 3.22643519e-307 9.79103798e-307]]]
建立一個指定形狀的數組,不初始化-2
-np.random.ramdom_sample()
import numpy as np
a = np.random.random_sample((3,4))
print(a)
# output
[[0.04997798 0.77390955 0.93782363 0.5792328 ]
[0.53516563 0.80204309 0.24814448 0.59096694]
[0.32950282 0.98797985 0.86846315 0.16452144]]
np.arrange
a = np.arange(4.); print(f"np.arange(4.): a = {a}, a shape = {a.shape}, a data type = {a.dtype}")
a = np.random.rand(4); print(f"np.random.rand(4): a = {a}, a shape = {a.shape}, a data type = {a.dtype}")
# output
np.arange(4.): a = [0. 1. 2. 3.], a shape = (4,), a data type = float64
np.random.rand(4): a = [0.11806417 0.07001424 0.32127946 0.76023838], a shape = (4,), a data type = float64
完整輸出numpy
np.set_printoptions(threshold=np.nan)
# or
import sys
np.set_printoptions(threshold=sys.maxsize)