NumPy學習筆記:4、高級運算
阿新 • • 發佈:2017-07-21
scipy file matrix 系統 from degree span ctu src
一、多項式
舉個例子,:
>>> p = np.poly1d([3, 2, -1]) >>> p(0) -1 >>> p.roots array([-1. , 0.33333333]) >>> p.order 2
1、更多與多項式相關
同樣以 為例:
>>> p = np.polynomial.Polynomial([-1, 2, 3]) # coefs in different order! >>> p(0) -1.0 >>> p.roots() array([-1. , 0.33333333]) >>> p.degree() # In general polynomials do not always expose ‘order‘ 2
在切比雪夫基礎上使用多項式的例子:
>>> x = np.linspace(-1, 1, 2000) >>> y = np.cos(x) + 0.3*np.random.rand(2000) >>> p = np.polynomial.Chebyshev.fit(x, y, 90) >>> t = np.linspace(-1, 1, 200)>>> plt.plot(x, y, ‘r.‘) [<matplotlib.lines.Line2D object at ...>] >>> plt.plot(t, p(t), ‘k-‘, lw=3) [<matplotlib.lines.Line2D object at ...>]
切比雪夫多項式在插值時十分有用。
二、加載數據文件
1、文本文件(.txt)
>>> data = np.loadtxt(‘data/populations.txt‘) # 註意路徑要使用‘/‘ >>> np.savetxt(‘pop2.txt‘, data) >>> data2 = np.loadtxt(‘pop2.txt‘)
註意:如果你的文本文件比較復雜,你可以試一下:
(1) np.genfromtxt
(2) 使用Python的 I/O函數 和 例如 正則表達式用來解析
tips:IPython中的幾個常用的文件系統的文件及文件夾命令:
In [1]: pwd # show current directory ‘/home/user/stuff/2011-numpy-tutorial‘ In [2]: cd ex ‘/home/user/stuff/2011-numpy-tutorial/ex‘ In [3]: ls populations.txt species.txt
2、圖像文件
(1)使用matplotlib庫:
>>> img = plt.imread(‘C:/Users/Steacy/Downloads/me.jpg‘) >>> img.shape, img.dtype ((680, 654, 3), dtype(‘uint8‘)) >>> plt.imshow(img) <matplotlib.image.AxesImage object at 0x000001B7E219C390> >>> plt.savefig(‘plot.png‘) >>> plt.imsave(‘red_plot‘, img[:,:,0], cmap=plt.cm.gray) >>> plt.show() >>> plt.imshow(plt.imread(‘C:/Users/Steacy/red_plot‘)) <matplotlib.image.AxesImage object at 0x000001B7E293C390> >>> plt.show()
(2)使用其他庫
>>> from scipy.misc import imsave >>> imsave(‘tiny_me.png‘,img[::6,::6]) >>> plt.imshow(plt.imread(‘C:/Users/Steacy/tiny_me.png‘), interpolation=‘nearest‘) <matplotlib.image.AxesImage object at 0x000001B7E5034C18> >>> plt.show()
3、Numpy二進制文件 - 高效 I/O 操作
>>> data = np.ones((3, 3)) >>> np.save(‘pop.npy‘, data) >>> data3 = np.load(‘pop.npy‘)
4、其他常見的文件類型
(1)HDF5:h5py, PyTables
(2)NetCDF:scipy.io.netcdf_file, netcdf4-python, ...
(3)Matlab:scipy.io.loadmat, scipy.io.savemat
(4)MatrixMarket:scipy.io.mmread, scipy.io.mmwrite
(5)IDL:scipy.io.readsav
NumPy學習筆記:4、高級運算