如何在数组中保存序列?

时间:2017-07-06 12:00:05

标签: python-2.7 numpy

我试图在1D数组中设置r(这是一个序列)的值。所以,我可以进一步使用它来构建一个2D数组。下面写的代码给出以下错误:
文件“V_urc_3D.py”,第28行,in     r [j] = np.linspace(0.01,lim,500) ValueError:使用序列设置数组元素。

任何人都可以帮忙解决这个问题。

from __future__ import division
import numpy as np
import math
import matplotlib.pylab as plt
import matplotlib as mpl
from mpl_toolkits.mplot3d import Axes3D



Mh = np.linspace(10**11, 10**13, 5)
Rv = 259.3*(Mh/10**12)**(1/3)

r = np.zeros(len(Rv))
for j in np.arange(len(Rv)):
	lim = Rv[j]
	r[j] = np.linspace(0.01,lim,500)

1 个答案:

答案 0 :(得分:0)

r = np.zeros(len(Rv))创建一个用零初始化的numpy数组,它是(默认情况下)浮点值。

在错误跟踪引用的行中,您尝试将np.linspace(0.01, lim, 500)(这是一个包含500个浮点值的数组)分配给只有单个空间的内存位置浮点值;因此错误。

要立即修复,请为r的初始化添加维度,特别是r = np.zeros(len(Rv), 500)。如果您对更高级的语法感兴趣,列表推导可以提高您的速度:

r = np.array([np.linspace(0.01,lim,500) for lim in Rv])