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 = 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

 

转载于:https://www.cnblogs.com/steacyMAR/p/7207864.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值