对于两个列表a和b,我如何获得两者中出现的值的索引?例如,
a = [1, 2, 3, 4, 5]
b = [9, 7, 6, 5, 1, 0]
return_indices_of_a(a, b)
Run Code Online (Sandbox Code Playgroud)
将返回[0,4],用(a[0],a[4]) = (1,5).
说我有两个数组a和b,
a.shape = (5,2,3)
b.shape = (2,3)
Run Code Online (Sandbox Code Playgroud)
然后c = a * b会给我一个数组c的形状(5,2,3)用c[i,j,k] = a[i,j,k]*b[j,k].
现在的情况是,
a.shape = (5,2,3)
b.shape = (2,3,8)
Run Code Online (Sandbox Code Playgroud)
我想c有一个形状(5,2,3,8)与c[i,j,k,l] = a[i,j,k]*b[j,k,l].
如何有效地做到这一点?我a和b实际上相当大.
对于两个列表,
a = [1, 2, 9, 3, 8, ...] (no duplicate values in a, but a is very big)
b = [1, 9, 1,...] (set(b) is a subset of set(a), 1<<len(b)<<len(a))
indices = get_indices_of_a(a, b)
Run Code Online (Sandbox Code Playgroud)
如何让get_indices_of_a回indices = [0, 2, 0,...]用array(a)[indices] = b?有没有比使用更快的方法a.index,这需要太长时间?
制作b一集是匹配的列表,并返回指数的快速方法(见的匹配值的Python和回报指数比较两个列表),但它会失去第二的指标1,以及在这种情况下,指数序列.
我想用python运行一些fortran代码,并使用f2py -c -m.但是,似乎只有FUNCTION被打包到.so文件中,而不是打包到PROGRAM中.那我怎么处理全局变量呢?例如,变量c放在模块中
MODULE nfw
double precision :: c
END MODULE nfw
Run Code Online (Sandbox Code Playgroud)
,在PROGRAM中被修改,并由隐含的同一文件中的FUNCTION使用
PROGRAM Compute_Profile
USE nfw
c = 5.0
END PROGRAM Compute_Profile
DOUBLE PRECISION FUNCTION y(x)
USE nfw
double precision :: x
y = c * x
return
END FUNCTION y
Run Code Online (Sandbox Code Playgroud)
我如何调用让函数y(x)知道python 中c的值?