对不起,我对这个社区很陌生。所以这个问题可能是微不足道的。 不管怎样,我已经创建了一个numpy矩阵。现在我想用meanshift算法来计算密度点。 不幸的是,我目前面临以下错误: TypeError:只有length-1数组可以转换为Python标量
nygrid=np.zeros((2501,901), dtype=int)
for x in range(0,39):
in_file = "C:\Users\User\Desktop\Master en BIGDATA\Trabajo Fin de
master\Practica\Data Records\part-m-000" + '{:02d}'.format(x)
for line in open(in_file):
passen, forigen, corigen, fdest, cdest = line.split('\t')
vPass=int(passen)
vFOrigen=int(forigen)
vCOrigen=int(corigen)
vFDest=int(fdest)
enter code herevCDest=int(cdest)
nygrid[vFOrigen][vCOrigen]=nygrid[vFOrigen][vCOrigen]+vPass
nygrid[vFDest][vCDest]=nygrid[vFDest][vCDest]+vPass
from sklearn import datasets
import mean_shift as ms
model = ms.MeanShift(kernel_func=ms.gaussian_kernel, bandwidth=50,
seeds=500, n_jobs=-1)
创建变量列和行 列=nygrid[:,:901] 行=nygrid[:2501,:]
现在我要创建X和y,这个想法就是把矩阵的整行整列作为n个样本和中心传递 十、 y=datasets.make\ blobs数据集.make\ blobs(n\u samples=行,centers=列, 集群标准=np.随机.正态(1,.3,nаu簇)
现在我得到以下错误,意识到我不能将变量行和列作为n\u sample和centers传递。你知道吗
X, y = datasets.make_blobs(n_samples=rows, centers=columns)
File "C:\Users\User\Anaconda2\lib\site-
packages\sklearn\datasets\samples_generator.py", line 752, in make_blobs
n_samples_per_center = [int(n_samples // n_centers)] * n_centers
TypeError: only length-1 arrays can be converted to Python scalars
可能是为了启动meanshift,逻辑不准确。但正如我告诉你的,我在这方面是全新的。你知道吗
事先谢谢你的帮助。你知道吗
安德里亚
我可以重现你的错误:
在
n_samples
和n_centers
中的一个或两个都是数组。//
是整数除法,结果是整数数组。尝试将其转换为一个整数是错误的(Pythonint
函数就是这样做的)。不需要尝试这种转换。Plusastype(int)
是将浮点数组转换为整数的正确方法。你知道吗相关问题 更多 >
编程相关推荐