栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何使用另一个Numpy数组设置多维Numpy数组的单个元素?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何使用另一个Numpy数组设置多维Numpy数组的单个元素?

使用

a
as作为数据数组和
idx
索引数组,以便每一行对应于要在数据数组中设置的一个元素,您可以执行以下操作-

a[tuple(idx.T)] = 5

样品运行-

In [94]: a = np.zeros((2,2,3),dtype=int)In [95]: idx = np.array([[0,0,0],[1,1,0],[0,1,2]])In [96]: a[tuple(idx.T)] = 5In [97]: aOut[97]: array([[[5, 0, 0],        [0, 0, 5]],       [[0, 0, 0],        [5, 0, 0]]])In [98]: a[tuple(idx.T)] = [5,10,15] # or set different valuesIn [99]: aOut[99]: array([[[ 5,  0,  0],        [ 0,  0, 15]],       [[ 0,  0,  0],        [10,  0,  0]]])

或者,我们可以使用计算线性索引,

np.ravel_multi_index
然后使用进行赋值
np.put
,就像这样-

np.put(a,np.ravel_multi_index(idx.T,a.shape),5)

如果您要处理三维数组,我们可以对三维索引进行切片,然后分配具有另一种方法,如下所示:

a[idx[:,0],idx[:,1],idx[:,2]] = 5

如果只是需要设置的一个元素,请执行以下操作-

a[tuple(idx)] = 5

样品运行-

In [118]: a = np.zeros((2,2,3),dtype=int)In [119]: idx = np.array([0,0,0])In [120]: a[tuple(idx)] = 5In [121]: aOut[121]: array([[[5, 0, 0],        [0, 0, 0]],       [[0, 0, 0],        [0, 0, 0]]])


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/638492.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号