-1
我有一个Python代码,这是写在下面。令我感到不安的是我在数组rhot
中得到的大量输出。为val
主要是少数和这些小号码由指数因子进一步抑制作为线这个python代码为什么会产生非常大的数字?
rhot[i, j, k] = (rhot[i, j, k] + val[j, k, l] *
np.exp(-(vlist[i] - velz[j, k, l]) ** 2/(2 * beta)))
是否有任何人知道为什么我收到了大量的输出rhot
这不可能是真的吗?
import numpy as np
import random
n = 6
val = np.empty((n, n, n)) # produces n*n*n empty matrix
for i in range(0, n - 1):
for j in range(0, n - 1):
for k in range(0, n - 1):
val[i, j, k] = random.lognormvariate(0, 1)
# produces lognormal random numbers with mean 1 and standard deviation 1
velz = np.empty((n, n, n))
for i in range(0, n - 1):
for j in range(0, n - 1):
for k in range(0, n - 1):
velz[i, j, k] = random.normalvariate(0, 1)
# produces normal random numbers with mean 1 and standard deviation 1
vmax = np.amax(velz) # maximum of flat velz array
vmin = np.amin(velz) # minimum
vlist = np.linspace(vmin, vmax, n)
# print(velz)
# print(val)
# print (vlist)
beta = 0.2
rhot = np.empty((n, n, n))
for i in range(0, n - 1): # index of velocity
for j in range(0, n - 1):
for k in range(0, n - 1):
for l in range(0, n - 1): # z index
rhot[i, j, k] = (rhot[i, j, k] + val[j, k, l] *
np.exp(-(vlist[i] - velz[j, k, l]) ** 2/(2 * beta))) # sums over 3rd dimension l, and stores the sum.
print(rhot)
你为什么不自己进行调查呢?只需打印每个词汇,当一个大的值弹出并保持跟踪... – Julien
我做了,它是rhot [i,j,k]第一个引起大量数字出现的最后一行。但是,由于指数抑制因素(指数内的负项应该使指数总是小于1),这个词显然不应该给出任何大数。 – konstant
那么正如我所说,如果它'应该',但没有,然后检查任何中间结果... – Julien