【问题标题】:Expected 2D array, got 1D array instead: array=[5.6 7. ]. Reshape your data either using array.reshape(-1, 1)预期 2D 数组,得到 1D 数组:array=[5.6 7. ]。使用 array.reshape(-1, 1) 重塑数据
【发布时间】:2020-04-17 17:28:19
【问题描述】:

当我们通过预测找到值但我收到错误时

"Expected 2D array, got 1D array instead:
array=[5.6 7. ].
Reshape your data either using array.reshape(-1, 1) if your data has a 
  single feature or array.reshape(1, -1) if it contains a single sample."

这是错误请解决我的问题 这是非常复杂的错误,这就是为什么我没有收到错误解决方案

【问题讨论】:

  • 你的代码在哪里?
  • 您的问题是函数(未知)需要一个二维数组,而您刚刚提供了一个一维数组。好的,这只是重申错误,但这是我们能用您提供的有限信息做的最好的事情!我们不知道你在运行什么,什么函数需要二维数组,或者你的数组的来源。

标签: python arrays numpy


【解决方案1】:

你只是打印了错误,但错误本身给出了解决方案。

如果函数只接受二维数组,那么任何numpy.ndarray 都可以通过 numpy.reshape(arr, (1, -1) 对其进行整形来转换为 2 数组。

现在请观察reshape操作的效果,这里(1, -1),第一个1代表数组的第一维,-1代表或只用于扁平化数组,以防数组的维度大于 2。

对于一维数组,您也可以使用(1, len(arr))

import numpy
arr = = numpy.array([1, 3, 5, 6, 7, 8, 8])
numpy.reshape(arr, (1, -1))
numpy.reshape(arr, (1, len(arr)))

两种重塑的结果相同。 输出

>>> array([[1, 3, 5, 6, 7, 8, 8]])  # output of numpy.reshape(arr, (1, -1))
>>> array([[1, 3, 5, 6, 7, 8, 8]])  # output of numpy.reshape(arr, (1, len(arr)))

因此,重塑使您的数组与您正在使用的函数兼容,但如果函数除了 2D 并且您拥有 1D 数组,则应该有一些有意义的方法来转换您的 1-D 事物到二维。

表示如果函数接受 2D 图像,并且您有 1D 音频序列,那么确实应该有完整的转换方式。

如果您也可以提及,帮助将是真正的帮助。目前,我们正在猜测您需要什么。

所以在提问之前,请花一些时间来构思问题,这样可以保证得到答案并解决问题

【讨论】:

    猜你喜欢
    • 2020-03-21
    • 2018-09-16
    • 2016-06-30
    • 2020-12-18
    • 2018-12-11
    • 2019-06-06
    • 2021-09-02
    • 2021-07-13
    相关资源
    最近更新 更多