我已经尝试了前两个解决方案 here和底部解决方案,因为它处理了 numpy 但没有任何效果。
我想用 80.0 除以我的数组名称的每个元素,即一个新数组 dx。
import numpy
L = 80.0
N = []
for n in range(-4, 10):
N.append(str(2 ** N))
N = np.array([N])
这是设置。所以我尝试过的是:
dx = L/N
-
dx = map(lambda x: L / x, N) dx = np.array([dx])
最后,将 N 保存为列表并将 N 保存为 numpy 数组并执行
dx = [x / N for x in N] dx = np.array([dx])
不幸的是,我无法在文档中找到有帮助的帖子或任何内容。我该怎么做才能达到预期的结果?
最佳答案
您的代码包含多个错误,并且您有很多不必要的转换,但是:您为什么不直接用 numpy 试试呢?
像这样:
import numpy as np
L = 80.0
N = 2 ** np.arange(-4, 10, dtype=np.float64)
dx = L / N
给你预期的结果
array([ 1.28000000e+03, 6.40000000e+02, 3.20000000e+02,
1.60000000e+02, 8.00000000e+01, 4.00000000e+01,
2.00000000e+01, 1.00000000e+01, 5.00000000e+00,
2.50000000e+00, 1.25000000e+00, 6.25000000e-01,
3.12500000e-01, 1.56250000e-01])
顺便说一句。您还可以在使用点时隐式强制 dtype
为 float
:
N = 2 ** np.arange(-4., 10.)
关于python:将一个数字除以一个numpy数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19004772/