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

展平NumPy数组列表?

富建章
2023-03-14
问题内容

看来我有NumPy数组列表(type() = np.ndarray)格式的数据:

[array([[ 0.00353654]]), array([[ 0.00353654]]), array([[ 0.00353654]]), 
array([[ 0.00353654]]), array([[ 0.00353654]]), array([[ 0.00353654]]), 
array([[ 0.00353654]]), array([[ 0.00353654]]), array([[ 0.00353654]]), 
array([[ 0.00353654]]), array([[ 0.00353654]]), array([[ 0.00353654]]),
array([[ 0.00353654]])]

我正在尝试将其放入polyfit函数中:

m1 = np.polyfit(x, y, deg=2)

但是,它返回错误: TypeError: expected 1D vector for x

我认为我需要将数据拼合为:

[0.00353654, 0.00353654, 0.00353654, 0.00353654, 0.00353654, 0.00353654 ...]

我已经尝试了通常在列表列表上都可以使用的列表理解,但是按预期的方法却没有效果:

[val for sublist in risks for val in sublist]

最好的方法是什么?


问题答案:

可以使用numpy.concatenate,顾名思义,它基本上将这样一个输入列表的所有元素连接到单个NumPy数组中,如下所示-

import numpy as np
out = np.concatenate(input_list).ravel()

如果您希望最终输出为列表,则可以扩展解决方案,如下所示-

out = np.concatenate(input_list).ravel().tolist()

样品运行-

In [24]: input_list
Out[24]: 
[array([[ 0.00353654]]),
 array([[ 0.00353654]]),
 array([[ 0.00353654]]),
 array([[ 0.00353654]]),
 array([[ 0.00353654]]),
 array([[ 0.00353654]]),
 array([[ 0.00353654]]),
 array([[ 0.00353654]]),
 array([[ 0.00353654]]),
 array([[ 0.00353654]]),
 array([[ 0.00353654]]),
 array([[ 0.00353654]]),
 array([[ 0.00353654]])]

In [25]: np.concatenate(input_list).ravel()
Out[25]: 
array([ 0.00353654,  0.00353654,  0.00353654,  0.00353654,  0.00353654,
        0.00353654,  0.00353654,  0.00353654,  0.00353654,  0.00353654,
        0.00353654,  0.00353654,  0.00353654])

转换为列表-

In [26]: np.concatenate(input_list).ravel().tolist()
Out[26]: 
[0.00353654,
 0.00353654,
 0.00353654,
 0.00353654,
 0.00353654,
 0.00353654,
 0.00353654,
 0.00353654,
 0.00353654,
 0.00353654,
 0.00353654,
 0.00353654,
 0.00353654]


 类似资料:
  • 问题内容: 有什么简单的方法可以展平 进入 问题答案: 似乎您正在考虑考虑使用一定数量的cols来形成块,然后获取每个块中的元素,然后移至下一个。因此,考虑到这一点,这是一种方法- 后面的动机将在中详细讨论。 此外,要保留2D格式- 并以 直观的 3D阵列格式显示它-

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

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

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

  • 问题内容: 我有一个numpy数组,其中大多数都用实数填充,但是其中也包含一些值。 如何用列的平均值替换s? 问题答案: 无需循环:

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