首页 > 代码库 > NumPy学习笔记:4、高级运算

NumPy学习笔记:4、高级运算

一、多项式

举个例子,技术分享

>>> 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 = http://www.mamicode.com/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 = http://www.mamicode.com/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、高级运算