numpy 常用api(三)

来源:互联网 发布:数据统计公司 编辑:程序博客网 时间:2024/06/04 20:52

numpy 常用api(一)

1. 库下的全局函数

全局函数np.funcation_name()一般属于非更易型函数
既然非更易,就需有返回值,否则函数无意义;

2. np.zeros()

>> np.zeros(())array(0.0)                # 也即接收空参的 tuple;

np.logaddexp

numpy.logaddexp(x1, x2[, out])

也即计算log(exp(x1)+exp(x2))

如何通过logaddexp函数计算log(x+y)(如果x,y都含有部分指数形式的话),

log(x+y) == np.logaddexp(np.log(x), np.log(y))                        # log(exp(np.log(x))+exp(np.log(y))) == log(x+y)

np.meshgrid() 与 np.mgrid

meshgrid is very useful to evaluate functions(自然是一个关于 x,y 的二元函数) on a grid.(不妨将这里的grid理解为网格点,np.meshgrid的目的是生成网格点的坐标 x:-10-10, y:-10-10)



xx, yy = np.meshgrid(np.arange(-5, 5, .01), np.arange(-5, 5, .01))zz = np.sin(xx**2+yy**2)/(xx**2+yy**2)plt.contourf(xx, yy, zz)plt.show()

也可以在创建网格点的坐标时,指定参数sparse为True,这样生成的 x,y 轴坐标个数就会显著减少,在使用二者的地方,通过numpy默认的广播机制(broadcasting)实现和dense型的坐标等价的功能。

>>> x, y = np.meshgrid(range(5), range(5), sparse=True)>>> xarray([[0, 1, 2, 3, 4]])                    # x.shape = (1, 5)                    # 广播时拷贝扩展5行>>> y array([[0],       [1],       [2],       [3],       [4]])                    # y.shape = (5, 1)                    # 广播时拷贝拓展5

np.mgrid是np.meshgrid()的convenient version,np.mgrid不是函数

注意切片的用法是:start:end:step

>>> np.mgird[0:3, 0:3]                        # 步长为1                        # 不包含3,array([[[0, 0, 0],        [1, 1, 1],        [2, 2, 2]],       [[0, 1, 2],        [0, 1, 2],        [0, 1, 2]]])>>> np.mgrid[-1:1:5j]                    # 步长为复数时,                    # 实数部分为元素的个数                    # stop value is inclusivearray([-1. , -0.5,  0. ,  0.5,  1. ])                    # (1-(-1))/(5-1)=.5

np.clip()

np.clip()的数学本质是一种截断;
考虑如下的分段函数:

f(x)=5,x,5,for x>5for |x|5for x<5

plt.plot(x, np.clip(x, -5, 5), 'g', lw=2)


这里写图片描述

0 0
原创粉丝点击