【问题标题】:Numpy.tostring and back to an arrayNumpy.tostring 并返回一个数组
【发布时间】:2022-01-13 15:05:49
【问题描述】:

我正在尝试将 numpy 数组转换为数组的字符串表示形式,然后再转换回数组本身。以下是使用的数据 frame_string = numpy.array2string(frame, separator=',') 当我尝试使用 numpy.fromstring(frame_string, dtype=int, sep=',') 将其转换回 numpy 数组时,我最终得到一个空的 [] 我究竟做错了什么?一段时间以来,我一直在用这个问题把我的头撞到墙上。 任何帮助表示赞赏!

"""[[[24,25,22],
  [24,24,21],
  [24,24,21],
  ...,
  [36,24,30],
  [36,24,30],
  [35,23,29]],

 [[26,26,24],
  [25,25,23],
  [26,24,23],
  ...,
  [37,25,31],
  [37,25,31],
  [37,25,31]],

 [[28,25,25],
  [29,26,26],
  [30,27,27],
  ...,
  [38,26,32],
  [39,27,33],
  [39,27,33]],

 ...,

 [[22,23,18],
  [22,23,18],
  [24,22,18],
  ...,
  [21,20,24],
  [21,20,24],
  [20,19,23]],

 [[22,23,17],
  [23,23,17],
  [25,22,18],
  ...,
  [21,20,24],
  [21,19,25],
  [20,18,24]],

 [[23,23,17],
  [24,23,17],
  [26,22,18],
  ...,
  [21,20,24],
  [21,19,25],
  [20,18,24]]]"""

【问题讨论】:

  • 重读fromstring 文档可能会为您省去一些麻烦。好的,它没有明确说明它不能处理什么。但是像''1, 2" 这样的例子非常简单。

标签: python arrays numpy cv2


【解决方案1】:

numpy.fromstring 不是numpy.array2string 的倒数。 NumPy 不提供任何 numpy.array2string 的逆函数。

事实上,不可能从显示的字符串中恢复您的原始数组。默认情况下,numpy.array2string 将汇总大型数组,用... 替换它们的大块内容。我们可以看到这发生在您的阵列上。该数据丢失。避免这种情况的documented 方法是将threshold=sys.maxsize 传递给array2string 调用。

【讨论】:

    猜你喜欢
    • 2013-03-11
    • 2016-09-16
    • 2017-08-15
    • 1970-01-01
    • 2011-05-27
    • 1970-01-01
    • 1970-01-01
    • 2015-07-19
    • 1970-01-01
    相关资源
    最近更新 更多