【问题标题】:Combining Matrice with an array In Python在 Python 中将矩阵与数组相结合
【发布时间】:2020-12-06 18:57:35
【问题描述】:

我试图洗牌两个矩阵。在改组之前,我尝试将它们连接起来,因为它看起来更容易。 (既然你想要例子)对于前第一个矩阵是:

A = [[ 1.  2.  3.   4]
     [ 1.  5.  6.   7]
     [ 1.  8.  9.   9]
     [ 1.  2.  1.   7]
     [ 1.  5.  5.   6]
     [ 1.  2.   3.  2]
     [ 1.  1.  4.   6]]

第二个是:

B = [ 1.  2.  3. 4. 5.  6.  7.]

那么我该如何洗牌?通过洗牌我想做这样的事情:A的第一个元素将与B的第一个元素改变位置。输出将是:

A = [[ 1.]
 [ 1.  5.  6.   7]
 [ 1.  8.  9.   9]
 [ 1.  2.  1.   7]
 [ 1.  5.  5.   6]
 [ 1.  2.   3.  2]
 [ 1.  1.  4.   6]]
B = [ 1.  2.  3.   4].  2.  3. 4. 5.  6.  7.]

有可能吗? 我希望这个问题现在更容易理解,感谢您的帮助。

【问题讨论】:

  • 如错误消息所述,矩阵需要具有匹配的维度。如果您在问题中包含输入数据会有所帮助。
  • 我们不知道您打算生产什么。举一个小的具体例子,有 2 个数组和想要的结果。

标签: python arrays numpy matrix


【解决方案1】:

不可能连接两个具有不同维度的矩阵,因为结果矩阵会不明确。

您可以使用相同的数据类型(通常是浮点数或整数)填充较小的矩阵以适应较大矩阵的大小

>>> result = np.full(fill_value=0, shape=b.shape)
>>> offset = (0, 0) # you can even set an offset
>>> result[offset[0]:a.shape[0]+offset[0],offset[1]:a.shape[1]+offset[1]] = a

或将较大的切片以适合较小的尺寸。

>>> b[:a.shape[0],:a.shape[1]]

由于您提出了如此笼统的问题,因此很难知道具体的解决方案是什么。

【讨论】:

    【解决方案2】:

    我想通了,

    c = np.column_stack((A, B))
    np.random.shuffle(c)
    BB = c[:, 4]
    AA= c[:, 0:4]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-06
      • 2017-09-23
      • 1970-01-01
      • 2020-09-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多