24小时热门版块排行榜    

查看: 462  |  回复: 1

dairenyihao

新虫 (小有名气)

[求助] python语言求助 已有1人参与

结果怎么会是array([4,10])? 为什么不是array([[4,6],[8,10]])?

python语言求助
snapshot1.png
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dnp

荣誉版主 (知名作家)

小木虫浪子

优秀版主

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
dairenyihao: 金币+10 2014-05-19 14:35:49
python的多维数组读取和其它的不一样,a[b1,b2]是将b1和b2中的True对进行对应,产生和具有True相同维数的数组,因此a[b1,b2]相当于是a[[1,2],[0,2]],产生和[1,2]相同维数的数组,而数组中的元素则是将b1,b2相结合所产生的索引在a中对应的数,即a中(1,0)和(2,2)的数。这个是比较特殊的形式。若要产生array([[4,6],[8,10]])的结果,应当为:
>>> c=np.array([1,1,2,2])
>>> c.reshape(2,2)
array([[1, 1],
       [2, 2]])
>>> d = np.array([0,2,0,2])
>>> a[c.reshape(2,2),d.reshape(2,2)]
array([[ 4,  6],
       [ 8, 10]])
What would Jesus do?
2楼2014-05-19 13:58:08
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 dairenyihao 的主题更新
信息提示
请填处理意见