我想知道是否有一条快捷方式可以在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) 我已经设法使用命令行sklearn将图像加载到一个文件夹中: load_sample_images()
我现在想将其转换为numpy.ndarray具有float32数据类型的格式
我能够将它转换为np.ndarray使用:np.array(X),np.array(X, dtype=np.float32)然后np.asarray(X).astype('float32')给我错误:
Run Code Online (Sandbox Code Playgroud)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
Run Code Online (Sandbox Code Playgroud) 为什么我收到此错误消息?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) 我有一个文本文件,其中包含由选项卡分隔的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) 我正在尝试使用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) 我正在尝试构建一个类似于 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) 我想对一些打包为 a 的数据运行sklearn's RandomForestClassifier,而这些数据numpy.ndarray恰好是稀疏的。打电话fit给ValueError: 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 ×7
numpy ×6
arrays ×3
scikit-learn ×3
element ×1
flatten ×1
list ×1
matplotlib ×1
mnist ×1
theano ×1
valueerror ×1