NumPy本身並沒有提供多麼高級的數據分析功能,理解Numpy數組以及面向數組的計算將有助於更加高效地使用諸如pandas之類的工具。 NumPy的ndarray:一種多為數組對象 NumPy最重要的一個特點就是N維數組對象,是一個快速而靈活的大數據集容器。 ndarray是一個通用的同構數據多維容器,其中所有的元素必須是相同的類型。每個數組有一個shape(一個表示各維度大小的元組)和一個dtype(一個說明數組數據類型的對象)
<code> import numpy as np/<code>
<code> # 1.創建ndarray
# 創建數組最簡單的辦法是使用array函數。它能接受一切序列型的對象,包括其他數組,然後產生一個新的含有傳入數據的NumPy數組。
# 例如:
data1 = [6, 7.5, 8, 0, 1]
arr1 = np.array(data1)
arr1.ndim/<code>
<code>1/<code>
<code> # 2.嵌套序列(比如由一組登場列表組成的列表)將會被轉換為一個多維數組:
data2 = [[1,2,3,4],[5,6,7,8]]
arr2 = np.array(data2)
arr2/<code>
<code> array([[1, 2, 3, 4],
[5, 6, 7, 8]])/<code>
<code> arr2.ndim
# ndim數組的長度/<code>
<code> 2/<code>
<code> arr2.shape/<code>
<code> (2, 4)/<code>
<code> arr1.dtype/<code>
<code> dtype('float64')/<code>
<code> # 3.全0和全1以及空(未初始化的值,垃圾值)數組
np.zeros(10)
np.zeros((10,10))
# zeros_like可以根據另一個數組的大小和形狀創建一個全0數組
np.zeros_like(arr2)/<code>
<code> array([[0, 0, 0, 0],
[0, 0, 0, 0]])/<code>
<code> np.ones(10)
# np.ones((10,10))
np.ones_like(arr2)
# ones_like可以根據另一個數組的大小和形狀創建一個全1數組/<code>
<code> array([[1, 1, 1, 1],
[1, 1, 1, 1]])/<code>
<code> np.empty((3, 3, 3))
# 類似ones_like但是隻分配內存空間不填充值。
np.empty_like(arr2)/<code>
<code> array([[5439564, 5374017, 4390992, 4522079],
[4456526, 5177424, 5111881, 84]])/<code>
<code> arange類似range但是返回一個數組而不是一個列表
np.arange(15)/<code>
<code> array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14])/<code>
<code> # 創建一個正方形的矩陣對角線為1其餘為0
np.eye(10)
np.identity(10)/<code>
<code> array([[1., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[0., 1., 0., 0., 0., 0., 0., 0., 0., 0.],
[0., 0., 1., 0., 0., 0., 0., 0., 0., 0.],
[0., 0., 0., 1., 0., 0., 0., 0., 0., 0.],
[0., 0., 0., 0., 1., 0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0., 1., 0., 0., 0., 0.],
[0., 0., 0., 0., 0., 0., 1., 0., 0., 0.],
[0., 0., 0., 0., 0., 0., 0., 1., 0., 0.],
[0., 0., 0., 0., 0., 0., 0., 0., 1., 0.],
[0., 0., 0., 0., 0., 0., 0., 0., 0., 1.]])/<code>
閱讀更多 不愛吃糖的大師 的文章