python numpy学习

目录

  1. np.meshgrid
  2. np.where

1.np.meshgrid

可以生成一对协调的点,

x = np.arange(-5, 5, 1)
y = np.arange(-5, 5, 1)
xx, yy = np.meshgrid(x, y, sparse=True)
xx
#输出:array([[-5, -4, -3, -2, -1,  0,  1,  2,  3,  4]])
yy
#输出:
array([[-5],
       [-4],
       [-3],
       [-2],
       [-1],
       [ 0],
       [ 1],
       [ 2],
       [ 3],
       [ 4]])

如果把x改成:x = np.arange(-5, 10, 1)

那么xx会变成:

array([[-5, -4, -3, -2, -1,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9]])

再来看一下另一个:

X1=np.arange(-1.5,1.5+0.05,0.05)
X2=np.arange(-3.5,2+0.05,0.05)
[x1,x2]=np.meshgrid(X1,X2)
f=100*(x2-x1**2)**2+(1-x1)**2; # 给定的函数
plt.contour(x1,x2,f,20) # 画出函数的20条轮廓线
plt.show()

这里写图片描述
其实主要看的,还是输出的东西是什么?
这里写图片描述

  • 一目了然,X1,X2分别生成的是61,111的,间隔为0.05的行向量;
  • 经过meshgrid函数之后,X1变成111行,61列,也就是说,X1由一列转成了行向量,之后,复制了111次,刚好这个111又是X2的元素个数。
  • X2由原来的一列111个元素,复制了61次,变成111行,61列的数组

2.np.where

numpy.where(条件(布尔类型),
           返回x (如果条件为True),
           返回y(如果条件为False))

测试一下:

np.where(4>5,4,5)
array(5)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值