我想在表中找到与特定索引对应的值。例如,这是我的表:
import numpy as np
my_array = np.array([[0,1,0,1,0,1,0],[1,2,1,2,1,2,1],[4,5,4,3,3,4,5]])
#---------------------------------------------------------------------
# my_array : [[0, 1, 0, 1, 0, 1, 0],
# [1, 2, 1, 2, 1, 2, 1],
# [4, 5, 4, 3, 3, 4, 5]])
下面是索引数组。该数组中的值是my_array的行。(未对列进行索引,索引的列索引对应于my_array的第一个索引。)
indexes = np.array([[0,0,0,0,0],[1,2,1,2,1]])
#---------------------------------------------------------------------
# indexes : [[0, 0, 0, 0, 0],
# [1, 2, 1, 2, 1]])
我想计算具有与my_array行中的值相对应的索引和值的形状相同的数组。这是我的代码:
result = np.zeros(indexes.shape)
for i in range(0, indexes.shape[0]):
result[i, :] = my_array[indexes[i, :], np.arange(0, indexes.shape[1])]
#---------------------------------------------------------------------
# Result : [[ 0., 1., 0., 1., 0.],
# [ 1., 5., 1., 3., 1.]]
有没有更多的“ pythonic方式”可以做到这一点?
使用advanced- indexing
-
my_array[indexes, np.arange(indexes.shape[-1])]
如果使用索引列表建立索引indexes
以每列选择一个索引,请使用-
my_array[indexes, np.arange(len(indexes))]
问题内容: 我有一个索引元组数组,我想用它从多维numpy数组中选取值, 理解只有在已知的情况下才有效。 有什么提示吗? 问题答案: 您可以将的转置版本转换为元组,然后为矢量化解决方案建立索引-
问题内容: 我有一个Numpy数组和一个索引列表,我想将其值加1。该列表可能包含重复的索引,我希望增量可以随每个索引的重复次数而缩放。没有重复,命令很简单: 通过重复,我想出了以下方法。 这是最好的方法吗?假设和操作将导致相同的排序顺序是否有风险?我是否缺少一些简单的Numpy操作来解决此问题? 问题答案: 做完之后 为什么不这样做: (为进一步简化而编辑。)
问题内容: 当我尝试仅获取像这样的数组的第一个元素时 我得到这个错误 我想找到一种在仍然使用切片的情况下执行此操作的方法,因为完整的代码会打开,并使用两列(从1到N之间不等)的所有列读取许多不同的文件。 问题答案: 您的数组只有 一个 维度:其形状为。然而,你的切片 指定选择 2米 的尺寸。这导致NumPy引发错误。 要从中获取第一个元素,只需编写即可(此处仅选择一个维度)。 看另一个问题,如果您
问题内容: 我要寻找一个量化的方式来索引的索引。 例如: 我想建立一个新的数组,以便该数组中的每一行(i)都是array的row(i),并由数组inds(i)的行索引。我想要的输出是: 我可以通过循环来实现: 但我正在寻找一种纯矢量化的解决方案。 问题答案: 使用索引数组对另一个数组进行索引时,每个索引数组的形状应与 输出 数组的形状匹配。您希望列索引匹配,并且您希望行索引匹配输出的行,例如: 由
问题内容: 我有具有重复值的numpy 2d数组。 我正在搜索这样的数组。 输入是列表,其编号类似于列0的值。我想要的最终结果是任何形式的结果行,例如数组,列表或元组 我的代码工作正常,但似乎不是pythonic。有没有更好的多值搜索策略? 就像只进行一次查找即可获取所有值的地方。 我的真实数组很大 问题答案: 方法1: 使用- 方法2: 使用-
问题内容: 我有一个像这样的numpy数组: 并想创建一个数组,其中索引0中的值在索引1中,索引1在索引2中,依此类推。 我想要的输出是: 我猜想有一个简单的方法可以做到这一点,而无需遍历整个数组。我如何以numPythonic的方式做到这一点? 问题答案: 您可以使用 要么
我想写一个函数,根据提供的bin概率,从训练集中随机选取元素。我将集合索引划分为11个单元,然后为它们创建自定义概率。 我得到以下错误: 我觉得这很奇怪,因为我已经检查了我创建的索引数组。它是一维的,它是整数,它是标量。 我错过了什么? 注意:我试图通过传递
问题内容: 在Python中,我们可以使用来获取数组中值的索引。 但是,当我尝试执行NumPy数组时: 我得到: AttributeError:“ numpy.ndarray”对象没有属性“ index” 我如何在NumPy数组上执行此操作? 问题答案: 使用来获得,其中一个给定的条件是指数。 例子: 对于称为的2D : 对于一维数组: 请注意,这也适用于像条件,,等等… 您也可以使用方法创建的子