【问题标题】:Converting list to numpy array将列表转换为 numpy 数组
【发布时间】:2015-01-07 03:26:58
【问题描述】:

我已经设法使用命令行 sklearn 将图像加载到文件夹中:load_sample_images()

我现在想将其转换为具有float32 数据类型的numpy.ndarray 格式

我能够使用 np.array(X) 将其转换为 np.ndarray,但是 np.array(X, dtype=np.float32)np.asarray(X).astype('float32') 给了我错误:

ValueError: setting an array element with a sequence.

有没有办法解决这个问题?

from sklearn_theano.datasets import load_sample_images
import numpy as np  

kinect_images = load_sample_images()
X = kinect_images.images

X_new = np.array(X)  # works
X_new = np.array(X[1], dtype=np.float32)  # works

X_new = np.array(X, dtype=np.float32)  # does not work

【问题讨论】:

  • 您有一个列表列表,其中并非所有列表都具有相同数量的条目。
  • 好的。解决办法是什么? python新手,请多多包涵
  • 检查你的np.array(x)成功后的类型。如果它是默认的 float64 - 那么您只是试图分配一个不适合您的列表(或列表列表)的类型。
  • np.array(x) uint8 的数据类型。我认为这是一个列表列表

标签: python numpy scikit-learn


【解决方案1】:

如果你有一个列表列表,你只需要使用 ...

import numpy as np
...
npa = np.asarray(someListOfLists, dtype=np.float32)

根据 scipy / numpy 文档中的 LINK。您只需要在对 asarray 的调用中定义 dtype。

【讨论】:

    猜你喜欢
    • 2017-03-08
    • 2019-08-30
    • 2021-06-09
    • 1970-01-01
    • 1970-01-01
    • 2019-06-11
    • 1970-01-01
    相关资源
    最近更新 更多