Python matmul将数组视为整数

Python matmul将数组视为整数,python,arrays,numpy,matrix,Python,Arrays,Numpy,Matrix,我一直在尝试为矩阵创建一个类,我已经做到了: import numpy as np import random class matrix(): def __init__(self, rows, cols): self.rows = rows self.cols = cols self.matrix = np.array([[0 for x in range(self.cols)] for y in range(self.rows)

我一直在尝试为矩阵创建一个类,我已经做到了:


import numpy as np
import random

class matrix(): 
    def __init__(self, rows, cols): 

        self.rows = rows
        self.cols = cols
        self.matrix = np.array([[0 for x in range(self.cols)] for y in range(self.rows)])


    def multiply(self, a): 
        self.matrix = np.matmul(self.matrix, a)

    def randomize(self): 
        for j in range(self.rows): 
            for i in range(self.cols):

                self.matrix[j][i] = random.randint(1,10)





m = matrix(4,3)
a = matrix(3, 3)
m.randomize()
a.randomize()

m.multiply(a)


我希望它能以矩阵的形式将m乘以a。我有一个函数,它给每个值一个介于0和10之间的nr

但我得到了这个错误信息:

ValueError: matmul: Input operand 1 does not have enough dimensions (has 0, gufunc core with signature (n?,k),(k,m?)->(n?,m?) requires 1)
我确信这只是我忽略的一个小问题,但如果不是,这是一个更大的问题,请不要犹豫问问题。
提前感谢

,因为您正在尝试将一个Numpy对象与矩阵类型的对象相乘。在乘法函数中,应该调用
np.matmul(self.matrix,a.matrix)
。此外,正如Barmar所建议的,您可以通过使用
self.matrix=np.zero((行,列))
来提高代码的性能


将numpy作为np导入
随机输入
类矩阵():
定义初始化(self、rows、cols):
self.rows=行
self.cols=cols
self.matrix=np.zero((行、列))
def倍增(自身,a):
self.matrix=np.matmul(self.matrix,a.matrix)

你在哪里定义你的
随机化()
矩阵?我把它排除在外,这样它更可读,我现在就添加它:)仅供参考,你可以用
self.matrix=np.zero((行,列))初始化矩阵。
谢谢你对这个函数并不陌生:)你这样做是为了学习吗?好吧,这让人尴尬。非常感谢,特别是关于np.zero部分。我对此并不陌生