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

使用numpy数组串联列向量

鲁光霁
2023-03-14
问题内容

我想使用numpy数组连接“列”向量,但是因为numpy默认情况下将所有数组视为行向量,np.hstack并且np.concatenate沿任何轴都无济于事(而且也没有np.transpose按预期进行)。

a = np.array((0, 1))
b = np.array((2, 1))
c = np.array((-1, -1))

np.hstack((a, b, c))
# array([ 0,  1,  2,  1, -1, -1])  ## Noooooo
np.reshape(np.hstack((a, b, c)), (2, 3))
# array([[ 0,  1,  2], [ 1, -1, -1]]) ## Reshaping won't help

一种可能性(但太麻烦了)是

np.hstack((a[:, np.newaxis], b[:, np.newaxis], c[:, np.newaxis]))
# array([[ 0,  2, -1], [ 1,  1, -1]]) ##

有更好的方法吗?


问题答案:

我相信numpy.column_stack应该做您想要的。例:

>>> a = np.array((0, 1))
>>> b = np.array((2, 1))
>>> c = np.array((-1, -1))
>>> numpy.column_stack((a,b,c))
array([[ 0,  2, -1],
       [ 1,  1, -1]])

它基本上等于

>>> numpy.vstack((a,b,c)).T

虽然。如文档中所述。



 类似资料:
  • 包含5911个时间戳 包含5911个样本,每个样本具有20个mfcc特征。 因此,如果您查看 ,它将如下所示: (5911,) (5911, 20) 我想将这两者结合起来,以便: 在R中,我可以简单地 我如何在python中实现这一点? 因此最终数据如下所示: 其中,这些时间1到时间5911只是所需的\u time\u标记中包含的值 我试过: 但出现了这个错误 然后我尝试转置: 但同样的错误: 我

  • 问题内容: numpy中最简单的方法来反转数组的最内部值是这样的: 这样我得到以下结果: 非常感谢你! 问题答案: 怎么样: 而最后一个维度的反方向是: 要么 尽管我更喜欢后者,因为前两个维度是隐式的,因此很难看到正在发生的事情。

  • 问题内容: 如何串联这些数组? 首先具有形状 第二个形状 最终结果应该是 我试过了 但是我得到这个错误 我究竟做错了什么? 问题答案: 要使用,我们需要将第二个数组扩展到,然后沿着- 或者,我们可以使用它来照顾它- 样品运行- 如果是这样,它的一个阵列具有的形状,很可能所有的数据都包含在它的唯一元素,我们需要 压扁 在连接前出来。为此,我们也可以使用它。这里是一个示例,目的是为了清楚地说明这一点-

  • 问题内容: 看来我有NumPy数组列表()格式的数据: 我正在尝试将其放入polyfit函数中: 但是,它返回错误: 我认为我需要将数据拼合为: 我已经尝试了通常在列表列表上都可以使用的列表理解,但是按预期的方法却没有效果: 最好的方法是什么? 问题答案: 可以使用,顾名思义,它基本上将这样一个输入列表的所有元素连接到单个NumPy数组中,如下所示- 如果您希望最终输出为列表,则可以扩展解决方案,

  • 问题内容: 我在创建numpy数组的numpy数组时遇到问题。我将在一个循环中创建它: 所需结果: 实际结果: 可能吗?我不知道数组的最终尺寸,因此无法使用固定尺寸对其进行初始化。 问题答案: 永远不要在循环中追加数组:与基本的Python相比,这是NumPy非常不擅长的一项操作。这是因为您要对每个数据进行完整复制,这将花费您二次时间。 相反,只需将您的数组附加到Python列表中,并在最后进行转

  • 我如何将一个简单的列表转换成一个Numpy数组?这些行是单独的子列表,每行包含子列表中的元素。