Numpy Fortran 90到Python数组

Numpy Fortran 90到Python数组,numpy,fortran,Numpy,Fortran,如何将以下Fortran声明转换为Python(numpy数组) 要声明整数,只需按如下方式赋值: i=1 xlist=[] 要声明浮点,请按如下方式分配: a=1.0 对于numpy阵列,最好提前知道大小: b=np.zeros((100,100)) # a 100x100 array, initialized with zeros x=np.ones(1000) # a 100 array , initialized with ones 如果您事先不知道数组的大小,请指定一个空列

如何将以下Fortran声明转换为Python(numpy数组)


要声明整数,只需按如下方式赋值:

i=1
xlist=[]
要声明浮点,请按如下方式分配:

a=1.0
对于
numpy
阵列,最好提前知道大小:

b=np.zeros((100,100)) # a 100x100 array, initialized with zeros
x=np.ones(1000)   # a 100 array , initialized with ones
如果您事先不知道数组的大小,请指定一个空列表,如下所示:

xlist=[]
然后按如下方式填写列表(比如在循环中):

xlist=[]
为什么这是首选方法请参见

您可以使用第二个循环创建列表列表,如本乘法表示例所示:

aa=[]
for i in range(10):
     a=[]
     for j in range(10):
         a.append(i*j)
     aa.append(a)
当您创建完列表(任意维度)并希望加快速度时,请将它们转换为numpy数组,如下所示

my2darray=np.array(aa) 

为什么要投反对票?如果你不知道,就忽略或添加一条评论,我不能代表downvoter说话,但这段代码实际上没有任何作用。你还不明白什么?我可以告诉你每一行在Fortran中的意思,但我基本上不能告诉你Python的任何内容……这个问题没有意义。Python不使用声明。您应该查找allocate语句并将其转换为类似于A=np.array的语句……这不是编程的工作方式。你不能逐行翻译,你必须理解整个程序的功能。但是您没有显示足够的代码。例如,如果没有适当的上下文,您的第四行就没有任何意义。问题是关于行
维度Z(*)
。关于
z
的类型和大小(或其他属性),我们能说些什么?另一位评论者已经指出,这句话本身没有意义。