TypeError:单个数组数组(<__Main__.Azhu_EmailClassifier_2对象位于0x000001D6E7A680D0>,DType=object)不能视为有效集合。
当我试图在自定义的AZHU_EmailClassifier_2类中运行train_test_split函数时,我遇到了这个错误。
我的班级:
class AZHU_EmailClassifier_2:
import os
import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
def __init__(self):
pass
def retrain_model(self, csv_file):
MIN_ROW_NUMBER = 500
TEST_SIZE = 0.25
RANDOM_STATE = 42
self.os.chdir(r"c:\LORI\PROJECTS\ALLIANZ\INCOMING_CHANNELS") # <---- a retraining file mappaja
df=self.pd.read_excel(csv_file,error_bad_lines=False, header=None)
df.dropna(axis=0,how='any', inplace=True)
rows_no=df.shape[0]
if rows_no<MIN_ROW_NUMBER:
print("Insufficient number of rows (<35.000)! RETRAINING ABORTED")
return None
X=df[0]
y=df[1]
X_train, X_test, y_train, y_test=self.train_test_split(X,y)
#X_train, X_test, y_train, y_test=self.train_test_split(X,y,test_size=TEST_SIZE, random_state=RANDOM_STATE, stratify=y)
return X_train
~\Anaconda3\lib\site-packages\sklearn\utils\validation.py in indexable(*iterables)291“”“292 result=[_make_indexable(X)for X in iterables]-->293 check_consistent_length(*result)294返回结果295
~\Anaconda3\lib\site-packages\sklearn\utils\validation.py in check_consistent_length(*arrays)251“”“252-->253 lengths=[_num_samples(X)for X in arrays(如果X不是None)]254 uniques=np.unique(长度)255如果len(uniques)>1:
~\Anaconda3\lib\site-packages\sklearn\utils\validation.py in(.0)251“”252-->253长度=[_num_samples(X)for X in arrays(如果X不是None)]254 uniques=np.unique(长度)255如果len(uniques)>1:
~\Anaconda3\lib\site-packages\sklearn\utils\validation.py in_num_samples(x)194如果hasattr(x,'shape')和x.shape不是none:195如果len(x.shape)==0:-->196引发TypeError(“单例数组%r不能视为”197“有效集合。”%x)198#检查shape是否返回整数或默认值
TypeError:单个数组数组(
我不知道为什么它会抛出这个错误。你能给我指出正确的方向吗?感谢任何帮助!
出现此错误是因为在类内部导入了train_test_split
,因此,train_test_split
成为绑定方法而不是函数,并且每当调用该方法时,实例将作为第一个参数传递。这里有一个最小的例子可以重建这种情况
class test():
from sklearn.model_selection import train_test_split
def retrain_model(self):
print(self.train_test_split)
print(self.train_test_split())
test_instance = test()
test_instance.retrain_model()
运行此脚本后,将得到typeerror
TypeError: Singleton array array(<__main__.test object at 0x7ffa473ae438>, dtype=object) cannot be considered a valid collection.
而self.train_test_split
在内存中的位置也是0x7FFA473AE438
。
import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
class AZHU_EmailClassifier_2():
def __init__(self):
pass
def retrain_model(self,):
MIN_ROW_NUMBER = 20
TEST_SIZE = 0.25
RANDOM_STATE = 42
df = pd.DataFrame({0:np.linspace(1,100,100),1:np.random.rand(100)})
X=df[0];y=df[1]
X_train, X_test, y_train, y_test = train_test_split(X,y,test_size=TEST_SIZE,random_state=RANDOM_STATE)
return X_train
test = AZHU_EmailClassifier_2()
test.retrain_model()
TypeError:单例数组( 当我试图在我的自定义AZHU_EmailClassifier_2类中运行train_test_split函数时,我遇到了这个错误。 我的班级: 当我运行train_test_split函数时,会触发错误。 整个错误消息: -------------------------------------------------------------------------
我正在编写一个代码,它取两个点,确定两个点的大小,比较它们,并返回哪个更大。我有我的主类和方法来运行所有的东西,然后还有另一个类点来实现我的接口。但是,我无法使从接口调用的方法正常工作。我的代码是: 当我尝试运行它时,我得到错误“exception in thread”main“java.lang.nullPointerException:不能调用”point.getMetality()“,因为”
问题内容: 我试图将对象存储在redis中,redis是类的实例,因此具有功能,这是一个示例: 有没有一种方法可以将对象与函数一起存储在Redis中?我尝试过,但是只保留了属性。如何存储函数定义并能够执行以下操作: 打电话时如何获得? 先感谢您! 编辑 得到了修改MyClass.prototype并存储值的建议,但是类似这样的事情(setter / getter以外的功能)呢? 我正在尝试说明一个
本章节中,简述自定义类的创建和使用方法,供参考。 创建自定义类 用户可以定义自己的类,通过继承 ThingJS 内部类(比如:Thing 类),对 ThingJS 进行扩展和封装。 我们推荐使用 ES6 语法定义一个类。例如,自定义汽车类 Car。 // 继承 Thing 类 class Car extends THING.Thing { constructor(app) { super(
问题内容: 是否可以为javac(或某些替代的Java编译器)指定自定义类加载器? 我很喜欢这种壮举,因为它可以让我编译使用仅由我的特殊类加载器找到的类的类。 对于那些好奇的人:我将编写一个连接数据库的classloder,并根据找到的表创建类。 问题答案: 运行javac时,您可以像这样指定类加载器:
问题内容: 假设我有一个文件一个简单的Python类定义myClass.py 而且我也有两个测试脚本。所述第一脚本创建类型测试的目的,填充阵列A,和泡菜的结果到一个文件。它立即从文件unpickles它并仍在填充阵列。第二脚本刚刚从文件unpickles,和 未填充的阵列(即A == [])。 为什么是这样? test1.py 和test2.py 问题答案: 这是因为你设置的一类属性,而不是一个实