gpt4 book ai didi

python - 循环中的python类

转载 作者:太空宇宙 更新时间:2023-11-04 10:34:01 24 4
gpt4 key购买 nike

我用python创建了一类矩阵:

class MatrixOperation:

...

def create_matrix(self):
some function for creation of matrix.
return matrix

def matrix_vector_multiplication(self, x):
mat = self.create_matrix()
return numpy.dot(mat, x)

和:

M = MatrixOperation(...)
x = some set of vector

for i in range(n):
M.matrix_vector_multiplication(x[i])

问题是,对于每次迭代,M.matrix_vector_multiplication(x[i]) 将在计算 numpy 之前重新计算 mat = self.create_matrix()。 dot(mat, x),这是不必要的(因为它可以在开始时计算一次)。我怎样才能避免这种情况?

谢谢,

最佳答案

为避免每次都重新创建矩阵,在类的 __init__ 方法中创建一个实例属性 - 与此类似。

class Matrix(object):
def __init__(self, data):
self.matrix = self.create_matrix(data)
# or simply
# self.matrix = np.matrix(data)
def create_matrix(data):
# create the_matrix
return the_matrix
def do_something(self, x):
z = some_function(self.matrix, x)
return z

my_matrix = matrix([[1,2,3,4],[4,3,2,1]])

关于python - 循环中的python类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24655303/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com