Python 打印数组时出现意外输出

Python 打印数组时出现意外输出,python,Python,我试图找到数组的最小值并打印它。简单,对吗?显然不是。我的代码: array = generateAtoms(num) arrayPoints, vArraySum = moveMolecule(array, numSteps=steps) plotSetUp(arrayPoints) #print vArraySum print min(vArraySum), " kJ/mol is the minimum potential achieved" 我希望我的答案在-0.19的范围内。如果我不

我试图找到数组的最小值并打印它。简单,对吗?显然不是。我的代码:

array = generateAtoms(num)
arrayPoints, vArraySum = moveMolecule(array, numSteps=steps)
plotSetUp(arrayPoints)
#print vArraySum
print min(vArraySum), " kJ/mol is the minimum potential achieved"
我希望我的答案在-0.19的范围内。如果我不打印上面的打印语句,我的输出约为9000000 kJ/mol。如果我打印它,我的打印语句与预期一样

下面是
vArraySum
的一个示例(如果我运行打印):

当我“观察”输出(使用打印)时,输出是如何变化的?我完全不知所措。再加上,900万的数字并非每次都是相同的数字,而是每次大约900万

编辑2:

def moveMolecule(array, numSteps):
# Moves molecules in random directions by adding random array
# Will not move points if potential of system increases
points = []
vArray = []
vArraySum = []
progress = 0

points.append(array)
for i in range(numSteps):
    addArray = np.random.uniform(low=-0.2, high=0.2, size=(num,3))
    if sumV(np.add(array, addArray)) < sumV(array):
        array = np.add(array, addArray)
    else: 
        array = array
    points.append(array)
    vArray.append(vArrays(array))
    vArraySum.append(sumV(array))

    # Updates progress bar
    progress = updateProgressBar(progress, i, numSteps)

plotV(points, vArray)

return points, vArraySum

我明白了。vArraySum是一个numpy数组。一定不能和敏玩得很好?谢谢你,约翰。将数组强制转换为浮点数解决了这个问题

能否添加有关输入和代码背后逻辑以及预期输出的更多信息?事实上,我没有发现你的代码中有任何错误。无法复制。“如果有任何其他信息需要我添加,请告诉我。”。您的代码使用的函数如何?当您对这些定义保密时,您如何期望任何人知道为什么
generateAtoms()
moveMolecule
和/或
plotSetUp
无法按预期工作?请给出一个答案。你介意给你的问题一个描述性的、有用的标题而不是一个有趣的标题吗?如果你能提供的只是几行充满未知参考的神秘代码或一个完整的1000行程序,那么你还没有准备好在这个网站上提问。
numpy
有一个名为
np.min()的函数
这也应该有效。我不太确定
min()
的问题是什么,因为我认为它应该可以工作。
def moveMolecule(array, numSteps):
# Moves molecules in random directions by adding random array
# Will not move points if potential of system increases
points = []
vArray = []
vArraySum = []
progress = 0

points.append(array)
for i in range(numSteps):
    addArray = np.random.uniform(low=-0.2, high=0.2, size=(num,3))
    if sumV(np.add(array, addArray)) < sumV(array):
        array = np.add(array, addArray)
    else: 
        array = array
    points.append(array)
    vArray.append(vArrays(array))
    vArraySum.append(sumV(array))

    # Updates progress bar
    progress = updateProgressBar(progress, i, numSteps)

plotV(points, vArray)

return points, vArraySum
def functionV(r):
# Function to calculate LJ potential
return ((4 * _e) * (((_d / r) ** 12) - ((_d / r) ** 6)))


def sumV(array):
# Uses NN search to calculate sum of potential of system
V = []

# Performs NN search to collect nearby radii
points = NNSearchSetUp(array)

radius  = NNSearch(points)

# Calculate potential for NNs
for r in radius:
    V.append(functionV(r))
return sum(V)