我想使用exec
方法将numpy数组分配给字符串变量
x = np.random.rand(3,2)
y = np.random.rand(4)
z = np.random.rand(2,2)
r = ['x','y','z']
for i in r:
exec("%s = %g"%(i,eval(i)+2))
但是当我执行代码时,它给出了错误
TypeError: float argument required, not numpy.ndarray
如果我将数组转换为标量,那么它就工作了
for i in r:
exec("%s = %f"%(i,eval(i).sum()))
如何将numpy数组分配给字符串变量
要理解你想做什么有点难。名称空间中已经有名为
x, y, z
的数组,那么为什么要尝试创建指向相同数组的新变量x, y, z
如果您有一个名为
a
的numpy数组,并且希望创建一个指向它的新变量x
,您可以这样做这当然与
x = a
相同对于这个问题,实际上不太可能需要使用
exec
。如果要为一组数组指定名称(包含在列表中),那么应该查看Pythondict
容器,而不是创建名称空间变量。例如:或作为一个班轮:
然后您可以以
array_di['x']
的形式访问数组相关问题 更多 >
编程相关推荐