当前位置: 首页 > 面试题库 >

如何在不使用Python循环的情况下使用每一行中的指定列从矩阵创建向量?

邹昊
2023-03-14
问题内容

假设我有一个形状为(N,d)的矩阵和一个大小为N的向量,该向量表示矩阵中的哪一列与给定行相关。如何返回矩阵和相关列中的值所给定的大小为N的向量?

例如:

M = [[ 2, 4, 1, 8],
    [3, 5, 7, 1],
    [2, 5, 3, 9],
    [1, 2, 3, 4]]
V = [2, 1, 0, 1]

我尝试了类似的东西:

M[:,V]

但这返回的矩阵是NXN

有没有一种简单的格式化方法,它不涉及编写for循环,因此我可以获得以下向量:

V' = [1,5,2,2]

问题答案:

使用np.arange(len(V))用于索引的行数和V列的:

In [110]: M = [[ 2, 4, 1, 8],
   .....:     [3, 5, 7, 1],
   .....:     [2, 5, 3, 9],
   .....:     [1, 2, 3, 4]]

In [111]: V = [2, 1, 0, 1]

In [112]:

In [112]: M = np.array(M)

In [113]: M[np.arange(len(V)),V]
Out[113]: array([1, 5, 2, 2])


 类似资料:
  • 我试图研究我的数据中有零值的概率,我开发了一个代码,当一列数据为零时输出另一列数据的值,这正是我所需要的。但是,对于577BY29数据流中的每一列和其他28列都要这样做是很困难的,所以我决定创建一个for循环,在我有以下内容的地方为我这样做: 您可以看到,当输出数据帧有n=29列时,代码循环正确,但对于上面指定的条件,代码循环不正确。 请帮忙,谢谢!

  • 我想实现UI矩阵模式,它应该动态生成。通过接收输入参数,它应该决定什么是UI矩阵模式维度:例如9X3元素:模式9X3要素 我使用Angular2.js、typescript和SCSS。 html模板和。ts外观: ** 此代码无法在此环境中运行:)* 问:如何在不创建数组来生成 UI 的情况下使用 NgFor。我的意思是,如果我收到输入x = 9和y = 3,它应该构建9X3的UI矩阵模式。请告知

  • 本文向大家介绍如何在不使用HTML的情况下创建网站?,包括了如何在不使用HTML的情况下创建网站?的使用技巧和注意事项,需要的朋友参考一下 如果您不了解HTML或CSS,并且想创建一个网站,那么不用担心,您可以轻松创建网站,而无需编写一行HTML代码。 以下是一些无需编写任何HTML或代码行即可构建网站的方法: 网站构造函数 当您购买网站托管计划时,托管公司将为您提供免费的网站构建器选项,以轻松创

  • 假设我在java中有一个主类,它接收一个矩阵[][],比如: ` '然后用户输入输入: 我知道这是一个5x5的矩阵,但只是因为我看到了用户输入的内容,我如何获得矩阵的大小- 我什么也没试过,我是Java初学者,所以请耐心等待。

  • 问题内容: 使用这样的地理数据记录: 我想输出类似这样的内容,其中它以矩阵形式显示START / END配对: 我可以看到如何以及将如何找到数据,但是我对如何显示为矩阵一无所知。有人有什么想法吗? 问题答案: 这似乎可以解决问题,并在PostgreSQL 9.1上进行了测试。几乎肯定会需要对它进行调整以使其适合SQL Server(任何人都可以随时更新我对此的回答)。 但是请注意,我的输出与您的输

  • 基本上,我已经得到了一个CircularQueue的实现,我需要实现一个名为'public boolean contains(E other)'的方法,如果参数'other'存在于我的队列中,该方法应该返回true。 我对它没意见,因为它是一个数组,但后来我看到了它的另一个条件,这困扰着我。 请记住,您不能在队列中的所有元素之间自由导航。只有front元素在任何时候都可以通过peek方法访问。co

  • 我目前有以下问题,给定一个数组,为了简单起见,假设一个4 x 4数组(我实际上正在使用512 x 512) 我想在数组周围循环/滑动,这样我就可以在表单中保存新数组 < code>np.array([3,5],[7,6]),np.array([2,4],[8,8]),np.array([1,6],[2,1]),np.array ([7,7],[1,4])等等(理想情况下,我可以选择我的“滑动”窗口

  • 问题内容: 我有一个像这样的numpy数组 我想创建一个看起来像这样的数组: 从而,每行对应于通过行索引+1移位的行。 一个简单的实现可能看起来像这样: 这给了我想要的输出。 我的问题是,是否有更聪明的方法可以避免循环。 问题答案: 这是一种方法,该方法主要使用剩余元素填充,然后帮助我们非常有效地创建转换后的版本- 样品运行- 运行时测试- 制作副本(如果您想进行更改,而不仅仅是用作只读数组),对