我有,
arr_x = np.arange(.1, .9, 1/125)
arr_y = np.arange(.1, .9, 1/125)
mx, my = np.meshgrid(arr_x, arr_y, sparse = True)
L = [0,1,2,3]
Meval = mx my
我如何使它Meval保持坐標網格的結構,但Meval只要 (x,y) 不是arr_x[L]cross_product的成員,它就為 0 arr_y[L];如,我想要條件評估,我知道我可以使用 for 回圈輕松完成此操作,但顯然這比使用numpy.meshgrid.
謝謝!
uj5u.com熱心網友回復:
IIUC,您可以像制作 , 一樣制作遮罩mx,my然后使用遮罩將值設定為 0:
xmask = np.ones(len(arr_x),bool)
ymask = np.ones(len(arr_y),bool)
xmask[L] = False
ymask[L] = False
#e.g.
#arr_x :
#array([0.1 , 0.108, 0.116, 0.124, 0.132, 0.14 , 0.148, 0.156, 0.164,
# 0.172, 0.18 , 0.188, 0.196, 0.204, 0.212, 0.22 , 0.228, 0.236,
# 0.244, 0.252, 0.26 , 0.268, 0.276, 0.284, 0.292, 0.3 , 0.308,
# 0.316, 0.324, 0.332, 0.34 , 0.348, 0.356, 0.364, 0.372, 0.38 ,
# 0.388, 0.396, 0.404, 0.412, 0.42 , 0.428, 0.436, 0.444, 0.452,
# 0.46 , 0.468, 0.476, 0.484, 0.492, 0.5 , 0.508, 0.516, 0.524,
# 0.532, 0.54 , 0.548, 0.556, 0.564, 0.572, 0.58 , 0.588, 0.596,
# 0.604, 0.612, 0.62 , 0.628, 0.636, 0.644, 0.652, 0.66 , 0.668,
# 0.676, 0.684, 0.692, 0.7 , 0.708, 0.716, 0.724, 0.732, 0.74 ,
# 0.748, 0.756, 0.764, 0.772, 0.78 , 0.788, 0.796, 0.804, 0.812,
# 0.82 , 0.828, 0.836, 0.844, 0.852, 0.86 , 0.868, 0.876, 0.884,
# 0.892])
#xmask:
#array([False, False, False, False, True, True, True, True, True,
# True, True, True, True, True, True, True, True, True,
# True, True, True, True, True, True, True, True, True,
# True, True, True, True, True, True, True, True, True,
# True, True, True, True, True, True, True, True, True,
# True, True, True, True, True, True, True, True, True,
# True, True, True, True, True, True, True, True, True,
# True, True, True, True, True, True, True, True, True,
# True, True, True, True, True, True, True, True, True,
# True, True, True, True, True, True, True, True, True,
# True, True, True, True, True, True, True, True, True,
# True])
mx_mask, my_mask = np.meshgrid(xmask, ymask, sparse=True)
M = mx my
#M:
#array([[0.2 , 0.208, 0.216, ..., 0.976, 0.984, 0.992],
# [0.208, 0.216, 0.224, ..., 0.984, 0.992, 1. ],
# [0.216, 0.224, 0.232, ..., 0.992, 1. , 1.008],
# ...,
# [0.976, 0.984, 0.992, ..., 1.752, 1.76 , 1.768],
# [0.984, 0.992, 1. , ..., 1.76 , 1.768, 1.776],
# [0.992, 1. , 1.008, ..., 1.768, 1.776, 1.784]])
M_mask = mx_mask my_mask
M[M_mask] = 0
#M:
#array([[0.2 , 0.208, 0.216, ..., 0. , 0. , 0. ],
# [0.208, 0.216, 0.224, ..., 0. , 0. , 0. ],
# [0.216, 0.224, 0.232, ..., 0. , 0. , 0. ],
# ...,
# [0. , 0. , 0. , ..., 0. , 0. , 0. ],
# [0. , 0. , 0. , ..., 0. , 0. , 0. ],
# [0. , 0. , 0. , ..., 0. , 0. , 0. ]])
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/511883.html
標籤:Python麻木的
