2017-07-06 33 views
-2

我想在一維數組中設置r(它是一個序列)的值。所以,我可以進一步使用它來構建一個2D數組。下面的代碼給出了以下錯誤:
文件「V_urc_3D.py」,第28行,在 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)): 
 
\t lim = Rv[j] 
 
\t r[j] = np.linspace(0.01,lim,500)

+0

嘗試:'r = np.zeros(len(Rv),500)'。 – Divakar

回答

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])