一、多项式
举个例子,:
>>> 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