Python 检查数组是否没有';t不包含负数,如果包含负数,请重新运行函数
我今天的任务是创建一种方法来检查函数的输出是否包含负数,如果包含负数,那么我必须运行函数,直到它不包含负数 稍后我将在文章中发布完整代码,但这是我尝试的解决方案:Python 检查数组是否没有';t不包含负数,如果包含负数,请重新运行函数,python,arrays,numbers,output,Python,Arrays,Numbers,Output,我今天的任务是创建一种方法来检查函数的输出是否包含负数,如果包含负数,那么我必须运行函数,直到它不包含负数 稍后我将在文章中发布完整代码,但这是我尝试的解决方案: def evecs(matrixTranspose): evectors = numpy.linalg.eig(matrixTranspose)[1][:,0] return evectors if any(x<0 for x in evectors) == False: print(evecto
def evecs(matrixTranspose):
evectors = numpy.linalg.eig(matrixTranspose)[1][:,0]
return evectors
if any(x<0 for x in evectors) == False:
print(evectors)
def evecs(矩阵传输):
evectors=numpy.linalg.eig(基质转运)[1][:,0]
返回向量
如果有(x您没有声明变量evectors
,而不是在您的函数evecs
的范围内
evectors = evecs(matrixTranspose)
if any(x<0 for x in evectors) == False:
print(evectors)
在python中,空格非常重要。检查您的缩进不要比较布尔值,而是使用自然的方式:如果没有(xDo你明白吗?是的。OP定义了函数,似乎从未使用它或存储它的任何输出,然后尝试访问结果。这是一个相当尴尬的错误。我的错。谢谢你的帮助。我继续并实现了它,即使没有任何错误,我仍然没有得到Evactors部分的任何输出。这里这是我的完整代码,以及我得到的输出。我的错误在哪里?
def MarkovChain(n,s) :
"""
"""
matrix = []
for l in range(n) :
lineLst = []
sum = 0
crtPrec = precision
for i in range(n-1) :
val = random.randrange(crtPrec)
sum += val
lineLst.append(float(val)/precision)
crtPrec -= val
lineLst.append(float(precision - sum)/precision)
matrix2 = matrix.append(lineLst)
print("The intial probability matrix.")
print(tabulate(matrix))
matrix_n = numpy.linalg.matrix_power(matrix, s)
print("The final probability matrix.")
print(tabulate(matrix_n))
matrixTranspose = zip(*matrix_n)
return matrixTransponse # issue 2
# issue 1
def evecs(matrixTranspose):
evectors = numpy.linalg.eig(matrixTranspose)[1][:,0]
return evectors
matrixTranponse = MarkovChain(4, 10000000000) # issue 3
# issue 4
evectors = evecs(matrixTranspose)
if any(x<0 for x in evectors) == False:
print(evectors)