相关疑难解决方法(0)

如何从列表列表中制作一个平面列表?

我想知道是否有一条快捷方式可以在Python列表中列出一个简单的列表.

我可以在for循环中做到这一点,但也许有一些很酷的"单行"?我用reduce尝试了,但是我收到了一个错误.

l = [[1, 2, 3], [4, 5, 6], [7], [8, 9]]
reduce(lambda x, y: x.extend(y), l)
Run Code Online (Sandbox Code Playgroud)

错误信息

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 1, in <lambda>
AttributeError: 'NoneType' object has no attribute 'extend'
Run Code Online (Sandbox Code Playgroud)

python list flatten multidimensional-array

2950
推荐指数
29
解决办法
184万
查看次数

将列表转换为numpy数组

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

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

我能够将它转换为np.ndarray使用:np.array(X),np.array(X, dtype=np.float32)然后np.asarray(X).astype('float32')给我错误:

ValueError: setting an array element with a sequence.
Run Code Online (Sandbox Code Playgroud)

有办法解决这个问题吗?

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
Run Code Online (Sandbox Code Playgroud)

python numpy scikit-learn

30
推荐指数
1
解决办法
10万
查看次数

Numpy ValueError:使用序列设置数组元素.此消息可能在没有序列存在的情况下出现?

为什么我收到此错误消息?ValueError:使用序列设置数组元素.谢谢

Z=np.array([1.0,1.0,1.0,1.0])  

def func(TempLake,Z):
    A=TempLake
    B=Z
    return A*B

Nlayers=Z.size
N=3
TempLake=np.zeros((N+1,Nlayers))

kOUT=np.zeros(N+1)
for i in xrange(N):
    kOUT[i]=func(TempLake[i],Z)
Run Code Online (Sandbox Code Playgroud)

python arrays element numpy

24
推荐指数
3
解决办法
15万
查看次数

将float从两列文本文件读取到Python中的数组时出错

我有一个文本文件,其中包含由选项卡分隔的2列,包含一些我想要读入数组的数据,并执行一些简单的操作,例如绘制数据.第二列中的数据是科学记数法,并且可以采用极小的值,例如从数量级10e-27 10e-50变化.例如,这是一个数据样本

0.00521135   -1.197189e-31
0.00529274   -7.0272737e-32
0.00530917   -6.0163467e-32
0.00532565   -4.9990405e-32
0.00534218   -3.9747722e-32
0.00535876   -2.9457271e-32
0.0053754    -1.9094542e-32
0.00539208   -8.6847519e-33
0.00540882    1.7851373e-33
0.00542561    1.2288483e-32
0.00544245    2.2850705e-32
0.00545934    3.3432858e-32
0.00547629    4.4084594e-32
0.00549329    5.4765499e-32
0.00551034    6.5491709e-32
Run Code Online (Sandbox Code Playgroud)

这是我的代码的样子:

import numpy as np
import matplotlib.pyplot as plt
with open('data.dat', 'r') as f2:
lines = f2.readlines()
data = [line.split()for line in lines] 
data2 = np.asfarray(data)
x1 = data2[:,0]
y1 = data2[:,1]
plt.plot(x1, y1)
plt.show()
Run Code Online (Sandbox Code Playgroud)

我已经使用此代码测试样本数据(.dat格式)文件,它似乎工作正常,但是当我在我的数据集上运行此代码时,它给我以下错误.

Traceback (most recent call last):
File "read_txt_col.py", line 17, in <module>
data2 …
Run Code Online (Sandbox Code Playgroud)

python numpy matplotlib

6
推荐指数
1
解决办法
3400
查看次数

Python:ValueError:使用序列设置数组元素

我正在尝试使用scikit-learn来做一些机器学习

我正在使用预处理模块来准备我的数据。数据是float类型。

通过阅读有关此问题的其他问题:ValueError: setting an array element with a sequence,这要么是由于我的数据结构错误,要么是因为我的数据是字符串类型。这里似乎都不是这种情况。

如果您有任何想法如何解决这个问题或者它意味着什么,请告诉我。谢谢你。

编码:

print(X)

pred_X = np.array(pred_X)
pred_Y = np.array(pred_Y)
X = np.array(X)
Y = np.array(Y)

X = preprocessing.scale(X)
pred_X = preprocessing.scale(pred_X)
Run Code Online (Sandbox Code Playgroud)

打印(x):

[[547180.0, 120.0, 113.0, 456701.0, 1.0, 6.43, -1.0, 0.313, 0.42, 0.267 3.0, 11800.0, 607208.0, 120.0, 113.0, 456701.0, 1.0, 0.273, 0.331, 0.154, 6.0, 10300.0, 458015.0, 113.0, 120.0, 45328 6.0, 1.0, 2.54, -1.0, 0.32, 0.443, 0.257, 3.0, 92000.0, 543685.0, 120.0, 113.0, …
Run Code Online (Sandbox Code Playgroud)

python arrays numpy scikit-learn valueerror

5
推荐指数
1
解决办法
3万
查看次数

Python Numpy 错误:ValueError:使用序列设置数组元素

我正在尝试构建一个类似于 theano logic_sgd.py 实现中提供的 mnist.pkl.gz 的数据集。以下是我的代码片段。

import numpy as np
import csv
from PIL import Image
import gzip, cPickle
import theano
from theano import tensor as T

def load_dir_data(csv_file=""):
    print(" reading: %s" %csv_file)
    dataset=[]
    labels=[]

    cr=csv.reader(open(csv_file,"rb"))
    for row in cr:
        print row[0], row[1]
        try: 
            image=Image.open(row[0]+'.jpg').convert('LA') 
            pixels=[f[0] for f in list(image.getdata())]
            dataset.append(pixels)
            labels.append(row[1])
            del image 
        except: 
            print("image not found")
    ret_val=np.array(dataset,dtype=theano.config.floatX)
    return ret_val,np.array(labels).astype(float)   


def generate_pkl_file(csv_file=""):
    Data, y =load_dir_data(csv_file)
    train_set_x = Data[:1500]
    val_set_x = Data[1501:1750]
    test_set_x = Data[1751:1900]
    train_set_y = y[:1500]
    val_set_y = …
Run Code Online (Sandbox Code Playgroud)

python arrays numpy mnist theano

3
推荐指数
1
解决办法
2万
查看次数

numpy.ndarray 稀疏矩阵到密集

我想对一些打包为 a 的数据运行sklearn's RandomForestClassifier,而这些数据numpy.ndarray恰好是稀疏的。打电话fitValueError: setting an array element with a sequence.。从其他帖子我了解到随机森林无法处理稀疏数据。

我希望该对象有一个todense方法,但它没有。

>>> X_train
array(<1443899x1936774 sparse matrix of type '<class 'numpy.float64'>'
    with 141256894 stored elements in Compressed Sparse Row format>,
      dtype=object)
>>> type(X_train)
<class 'numpy.ndarray'>
Run Code Online (Sandbox Code Playgroud)

我尝试用 SciPy 包装它,csr_matrix但这也会产生错误。

有没有办法让随机森林接受这些数据?(不确定密集实际上是否适合内存,但那是另一回事......)

编辑 1

产生错误的代码是这样的:

X_train = np.load('train.npy') # this returns a ndarray
train_gt = pd.read_csv('train_gt.csv')

model = RandomForestClassifier()
model.fit(X_train, train_gt.target)
Run Code Online (Sandbox Code Playgroud)

至于使用的建议toarray(),ndarray 没有这样的方法。 AttributeError: 'numpy.ndarray' object has no …

python numpy scikit-learn

3
推荐指数
1
解决办法
6337
查看次数