【问题标题】:Why is this data not returning a numpy shape?为什么这个数据没有返回一个 numpy 形状?
【发布时间】:2015-03-16 16:00:59
【问题描述】:

使用 NumPy,我试图重塑加载后看起来如下所示的数据:

(0.00017299999308306724, 0.00020900000527035445, ... 0.9700180292129517)

它有 54 个项目,我正在尝试最终将其重塑为 27x2 数组。它确实作为数组加载,但返回的形状为:() 我已经使用 NumPy 进行了以下测试:

    test = np.arange(54)
    print(test)
    print(test.shape)
    test = test.reshape(27,2)

按预期工作,初始形状为 (54,),然后是新形状 (27,2)。上面提到的数据没有返回形状,我无法重塑它。 确实有效的测试数据在第一次初始化时看起来像这样[0 1 2 3 ...53] 为什么数据格式看起来如此不同(不是类型,而是带有空格的 [] vs () with ,以及如何更改格式以便数组可以改造吗?

【问题讨论】:

  • 你能提供你用来加载数据的代码吗?
  • 您是否首先尝试定义a = np.array([...])?然后a.resample(...)?
  • 不,我没有重新取样。我正在从一个大型 NumPy 二进制文件中加载数据并从中获取两行。最初返回 2 的 len 和 (2,) 的形状,但这些记录中的每一个都有 54 个值。我可以像 data[0][n] 一样引用它们,但是当我尝试加载单个 54 值时,由于缺少更好的词而记录,即使我可以引用每个数组中的项目,它加载了对 asarray 和其他方法的调用。我看到的唯一区别是我最初描述中的数据方式 - 非常感谢您抽出宝贵时间。
  • () 在 Python 中表示 tuple 而不是列表。在numpy 中,此元组表示法用于结构化数组的元素。原数组的dtype是什么?
  • 克里斯,hpaulj 是对的。您似乎有一个structured array,您可能是通过拨打numpy.genfromtxt 得到的。如果您的整个数组是数字的,您可以简单地使用genfromtxtconvert 的选项,如果记录的字段具有相同的字节解释和字节大小。

标签: python arrays numpy format


【解决方案1】:

numpy 可以把它的形式转化为numpy的数组

import numpy as np 
a=(1,2,3,4,5,6)
np.array(a).reshape(3,2)

大多数 numpy 的函数适用于每个类似数组的数据结构,但是当你想应用一个依赖于 numpy 数组属性的函数时,你必须对其进行转换

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-25
    • 1970-01-01
    • 2014-05-31
    • 2018-12-28
    • 1970-01-01
    • 2021-01-11
    • 1970-01-01
    相关资源
    最近更新 更多