Python “Numpy给予”;类型错误:can';t将序列乘以类型为'的非整数;浮动'&引用;

Python “Numpy给予”;类型错误:can';t将序列乘以类型为'的非整数;浮动'&引用;,python,numpy,matrix,scipy,nmf,Python,Numpy,Matrix,Scipy,Nmf,问题在于: self.H = np.multiply(self.H, np.divide(np.matmul(preprocessing.normalize(self.W).T, np.multiply(self.X, np.power(self.A, self.beta - 2)))), np.matmul(self.W.T, np.power(self.A, self.beta - 1)) + self.sparsity) A、 W,H是熊猫数据帧。Beta和稀疏度是整数 它们的初始

问题在于:

   self.H = np.multiply(self.H, np.divide(np.matmul(preprocessing.normalize(self.W).T, np.multiply(self.X, np.power(self.A, self.beta - 2)))), np.matmul(self.W.T, np.power(self.A, self.beta - 1)) + self.sparsity)
A、 W,H是熊猫数据帧。Beta和稀疏度是整数

它们的初始化是:

    self.W = pd.DataFrame(np.random.randint(100,size=(self.X.shape[0], self.K)))
    self.H = pd.DataFrame(np.random.randint(0,100,size=(self.K, self.X.shape[1])))
    self.W = preprocessing.normalize(self.W)
    self.A = self.W.dot(self.H)

类型错误:不能将序列与类型为“float”的非int相乘。
的意思与它所说的完全相同。不能将非数字(非整数)数据类型与数字数据类型相乘。 例如,不能将字符串与数字相乘

您提交的上述代码实际上是有效的。但是,由于您得到了这个错误,我假设上面的代码只是您实际代码的代理。所以,我将告诉你我是如何解决我在做类似事情时遇到的相同错误的


假设有一个csv文件,其中包含下表所示类的主题标记

|      | Maths | English |
| Adam |  98   |   78    |
| John |  34   |   89    |
如您所见,有行索引和列索引。如果你跑

marks = pd.read_csv("marks.csv")
分数将有3列,第一列包含学生姓名
Pandas
read假设第一列是数据的一部分。现在,如果将其与
Numpy
数组相乘,将得到一个错误。因为,数字不能与字符串相乘

为了解决这个问题,我们需要显式地告诉pandas文件中的第一列是行索引

marks = pd.read_csv("marks.csv", index_col=0)
参数
index\u col
告诉我们文件中的哪一列作为行索引。
您可以在他们的文档中详细了解这一点。

乘法参数之一是一个列表<代码>[0]*3
产生[0,0,0]`。A、W、H、X的尺寸为(1055,25)(1055,30)(30,25)(1055,25)非常感谢!事情就是这样