在數據分析和機器學習中,大量的使用科學計算,Numpy提供了大型矩陣計算的方式,而這些是python標准庫中所缺少的。Numpy也是許多優秀的第三方庫的基礎,依賴於Numpy的庫非常多,后續會慢慢的進行介紹。
Numpy的安裝
和許多的庫一樣,不管在windows平台下還是在linux平台下,安裝Numpy的命令如下:
pip install numpy
安裝完以后:
Collecting numpy
Downloading numpy-1.14.0-cp27-none-win32.whl (9.8MB)
100% |████████████████████████████████| 9.8MB 27kB/s
Installing collected packages: numpy
Successfully installed numpy-1.14.0
在python解析器
下查看 Numpy
是否安裝成功:
import numpy
Numpy生成數組函數(Array creation )
直接使用array
函數生成數組:
>>> import numpy as np
>>> a = np.array([2,3,4])
>>> print a
[2 3 4]
>>> b = np.array([(1,3,4),(2,3,5)])
>>> print b
[[1 3 4]
[2 3 5]]
>>>
在array
函數中使用python自帶的list
,在多維數組中在list
中存放多個元祖。
使用 empty
, zeros
, ones
, identity
,eye
創建矩陣:
>>> import numpy as np
#使用empty創建2x2矩陣
>>> a = np.empty([2,2])
>>> print a
[[1.92432613e-295 1.92410215e-295]
[1.92414694e-295 1.92414694e-295]]
identity
為返回一個N維單位方陣。
同樣的還有empty_like
, ones_like
, zeros_like
是復制對方的維數,進行相應的處理。
使用 arange
和linspace
生成數組:
在0到2中按步長為0.3生成數組:
>>> np.arange( 0, 2, 0.3 )
array([0. , 0.3, 0.6, 0.9, 1.2, 1.5, 1.8])
在0到2中生成9個數:
>>> np.linspace( 0, 2, 9 )
array([0. , 0.25, 0.5 , 0.75, 1. , 1.25, 1.5 , 1.75, 2. ])
Numpy中數組的基本屬性
在Numpy中生成的數組叫做ndarray
, 在ndarray
中有如下的屬性:
-
ndarray.ndim: 數組維數
程序如下:
>>> a = np.zeros([3,4]) >>> a.ndim 2 >>> b = np.zeros([3,4,5]) >>> b.ndim 3 >>>
-
ndarray.shape:數組的結構 幾乘幾 數組
>>> print a.shape (3, 4) >>> print b.shape (3, 4, 5) >>>
-
ndarray.size: 數組有幾個元素
>>> print a.size 12 >>> print b.size 60 >>>
Numpy中數組的保存
使用tofile
和 fromfile
import numpy as np
a = np.array([(1,2,3,4),(4,5,2,4)])
print a
a.tofile("filename.bin")
b = np.fromfile("filename.bin",dtype = np.int32)
print b.reshape(2,4)
還可以使用 np.save()
np.load()
和 np.savez()
這一組合進行數據的存儲。
import numpy as np
a = np.array([(1,2,3,4),(4,5,2,4)])
print a
np.save("a.npy", a)
c = np.load("a.npy")
print c
另外一組為 savetxt()
和 loadtxt()
import numpy as np
a = np.array([(1,2,3,4),(4,5,2,4)])
print a
np.savetxt("a.txt", a)
np.loadtxt("a.txt")
c = np.load("a.npy")
print c
更多教程:阿貓學編程