首页 > 解决方案 > 运行函数后,函数变成了一个ndarray

问题描述

我正在尝试使用 exec 和 eval 函数编写代码,以从 numpy .npz 文件中读取变量列表。

请参阅上一篇文章:在 Michael Butscher 的帮助下 exec name "templet_1h" is not defined ,该函数现在可以工作了。然而,我遇到了另一个尴尬的情况。

在我执行函数类型(read_file)之前是一个函数,在我执行函数类型(read_file)之后变成了一个类“numpy.ndarry”。

有人可以帮我解释一下吗?如何解决?

def read_file(file_names_2):
    global templet_1h
    import numpy as np
    Delete_elements=["arr_0"]
    evaluate_1= "templet_1h=np.load(\"./" +file_names_2+ ".npz\")";
    exec(evaluate_1,globals())
    for i in (templet_1h.files):
        if not ( (i in Delete_elements) ):
            evaluate_2= i+"="+"templet_1h[\"" + i + "\"]";
            exec(evaluate_2,globals())
    del templet_1h
    return 

标签: pythonfunctionnumpyexec

解决方案


anumpy.ndarray是由 numpy 创建的类类型,用于使用 numpy 函数进行计算

要将一个转换为最有用的list

import numpy as np

x = np.ndarray([1,2])
x = x.tolist()

推荐阅读