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

在列块中展平或分组数组-NumPy / Python

冯福
2023-03-14
问题内容

有什么简单的方法可以展平

import numpy    
np.arange(12).reshape(3,4)
Out[]: 
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11]])

进入

array([ 0,  1,  4,  5, 8, 9, 2, 3, 6, 7, 10, 11])

问题答案:

似乎您正在考虑考虑使用一定数量的cols来形成块,然后获取每个块中的元素,然后移至下一个。因此,考虑到这一点,这是一种方法-

In [148]: a
Out[148]: 
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11]])

In [149]: ncols = 2 # no. of cols to be considered for each block

In [150]: a.reshape(a.shape[0],-1,ncols).swapaxes(0,1).ravel()
Out[150]: array([ 0,  1,  4,  5,  8,  9,  2,  3,  6,  7, 10, 11])

后面的动机将在中详细讨论this post

此外,要保留2D格式-

In [27]: a.reshape(a.shape[0],-1,ncols).swapaxes(0,1).reshape(-1,ncols)
Out[27]: 
array([[ 0,  1],
       [ 4,  5],
       [ 8,  9],
       [ 2,  3],
       [ 6,  7],
       [10, 11]])

并以 直观的 3D阵列格式显示它-

In [28]: a.reshape(a.shape[0],-1,ncols).swapaxes(0,1)
Out[28]: 
array([[[ 0,  1],
        [ 4,  5],
        [ 8,  9]],

       [[ 2,  3],
        [ 6,  7],
        [10, 11]]])


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

  • 本文向大家介绍在Python中将2d numpy数组展平为1d数组,包括了在Python中将2d numpy数组展平为1d数组的使用技巧和注意事项,需要的朋友参考一下 2d numpy数组是数组的数组。在本文中,我们将看到如何展平它以使元素成为一维数组。 与扁平化 numpy中的flatten函数是将2d数组转换为1D数组的直接方法。 示例 输出结果 运行上面的代码给我们以下结果- 带旅行 还有一

  • 问题内容: 我试图通过取元素的平均值将numpy数组分组为较小的大小。例如,将100x100阵列中的平均5x5子阵列的foreach平均值创建20x20大小的阵列。由于需要处理大量数据,这是一种有效的方法吗? 问题答案: 我已经尝试过使用较小的阵列,因此请与您的阵列进行测试: 6x6-> 3x3的示例:

  • 问题内容: 我有一个numpy数组,其中特定行的每个单元格代表一个功能的值。我将它们全部存储在100 * 4矩阵中。 知道如何将每个值都介于0和1之间的numpy.array的行标准化吗? 我想要的输出是: 提前致谢 :) 问题答案: 如果我理解正确,那么您要做的就是除以每一列中的最大值。您可以使用广播轻松地做到这一点。 从示例数组开始: 在第0维(即行)上取最大值。这为您提供了一个大小向量,其中

  • 我有一个JavaScript数组,如: 如何将单独的内部数组合并为一个:

  • 问题内容: 假设我有以下数组: 我怎么在那里我有值序列发生指数:?因此,在这种情况下的预期输出为:。 编辑: 1)请注意,这只是一个序列。可能是或或,仅此而已。 2)如果将我的数组修改为:,则具有相同序列的预期结果将是。 我正在寻找一些NumPy快捷方式。 问题答案: 嗯,这基本上是图像处理中经常出现的问题。这篇文章中列出了两种方法:基于纯NumPy和基于OpenCV(cv2)。 方法1: 使用N