相关疑难解决方法(0)

按列索引在Numpy数组的每一行中选择一个元素

有没有更好的方法从"input_array"和"select_id"获取"output_array"?

我们可以摆脱range( input_array.shape[0] )

>>> input_array = numpy.array( [ [3,14], [12, 5], [75, 50] ] )
>>> select_id = [0, 1, 1]
>>> print input_array
[[ 3 14]
 [12  5]
 [75 50]]

>>> output_array = input_array[  range( input_array.shape[0] ), select_id ]
>>> print output_array
[ 3  5 50]
Run Code Online (Sandbox Code Playgroud)

select numpy

29
推荐指数
2
解决办法
1万
查看次数

numpy 2d array max/argmax

我有一个numpy矩阵:

>>> A = np.matrix('1 2 3; 5 1 6; 9 4 2')
>>> A
matrix([[1, 2, 3],
        [5, 1, 6],
        [9, 4, 2]])
Run Code Online (Sandbox Code Playgroud)

我想获得每行中最大值的索引以及值本身.我可以使用A.argmax(axis = 1)得到最大值的索引,在这种情况下我会得到:

>>> indices = A.argmax(axis=1)
>>> indices
matrix([[2],
        [2],
        [0]])
Run Code Online (Sandbox Code Playgroud)

如何使用'indices'数组来获取矩阵中每行的最大值数组?有什么方法可以更有效地或在一次操作中做到这一点?是否有一个函数可以返回值及其行和列坐标?

python arrays numpy

6
推荐指数
1
解决办法
3709
查看次数

花哨的索引一个 numpy 矩阵:每行一个元素

我有一个形状为 (m, n) 的二维 numpy 数组、矩阵。我的实际用例有 m ~ 1e5 和 n ~ 100,但为了有一个简单的最小示例:

matrix = np.arange(5*3).reshape((5, 3))
Run Code Online (Sandbox Code Playgroud)

我有一个整数索引数组 idx,形状为 (m, ),每个条目都在 [0, n) 之间。此数组指定应从matrix 的每一行中选择哪一列。

idx = np.array([2, 0, 2, 1, 1])
Run Code Online (Sandbox Code Playgroud)

所以,我试图从第 0 行选择第 2 列,从第 1 行选择第 0 列,从第 2 行选择第 2 列,从第 1 行选择第 1 列,从第 4 行选择第 1 列。因此最终答案应该是:

correct_result = np.array((2, 3, 8, 10, 13))
Run Code Online (Sandbox Code Playgroud)

我已经尝试了以下,这是直观的,但不正确:

incorrect_result = matrix[:, idx]
Run Code Online (Sandbox Code Playgroud)

上面的语法所做的是将 idx 逐行应用为花哨的索引数组,从而产生另一个形状为 (m, n) 的矩阵,这不是我想要的。

这种类型的花式索引的正确语法是什么?

python arrays numpy matrix scientific-computing

2
推荐指数
1
解决办法
665
查看次数

Numpy:如何通过列向量选择二维数组中的行条目

如何从给定指示符列向量的二维数组中检索列向量?

假设我有

X = np.array([[1, 4, 6],
              [8, 2, 9],
              [0, 3, 7],
              [6, 5, 1]])
Run Code Online (Sandbox Code Playgroud)

S = np.array([0, 2, 1, 2])
Run Code Online (Sandbox Code Playgroud)

有没有一种优雅的方式来获得X结果Sarray([1, 9, 3, 1])这相当于

np.array([x[s] for x, s in zip(X, S)])
Run Code Online (Sandbox Code Playgroud)

indexing numpy

2
推荐指数
1
解决办法
405
查看次数

标签 统计

numpy ×4

arrays ×2

python ×2

indexing ×1

matrix ×1

scientific-computing ×1

select ×1