numpy python -np数组变量的名称为字符串

gywdnpxw  于 2024-01-08  发布在  Python
关注(0)|答案(3)|浏览(162)

我有这个代码:

我稍微重申了一下问题的提法。不确定礼仪是否是发布一个新问题。如果是这样,我的错

  1. import numpy as np
  2. a = np.array([0,0])
  3. b = np.array([1,0])
  4. c = np.array([2,0])
  5. my_array_list = [a,b,c]
  6. for my_array in my_array_list:
  7. np.save('string_that is representative of my_array',my_array)

字符串
其中“代表我的数组的字符串”等于“a”、“b”、“c”或类似的值。
可能有一个更好的方法来解决这个问题,我现在不能想出一个。
什么是最好的方法来做到这一点,快速和有效?

zrfyljdw

zrfyljdw1#

我可以向你推荐这个功能:

  1. import numpy as np
  2. def namestr(obj, namespace):
  3. return [name for name in namespace if namespace[name] is obj]
  4. my_numpy = np.zeros(2)
  5. print(namestr(my_numpy, globals()))

字符串
带输出:

  1. ['my_numpy']

ecfdbz9o

ecfdbz9o2#

优秀的解决方案由@GeorgePetrov以上.这里只是扩大它作为教程:

**给定:**任何类型的变量列表,例如 [a,bb,c,d,e]
**输出:**字符串形式的变量名称列表,例如 “a”、“bb”、“c”、“d”、“e”]

  1. import numpy as np
  2. a = np.array([0,0])
  3. bb = np.array([1,0,9,9])
  4. c = ["cvghvgh", "kkk"]
  5. d = 88
  6. e = "bb"
  7. variable_list = [a,bb,c,d,e]
  8. str_var_list=[]
  9. for i in range(len(variable_list)):
  10. str_var_list.append( [name for name in globals() if globals()[name] is variable_list[i]][0] )
  11. print(str_var_list)

字符串

展开查看全部
8oomwypt

8oomwypt3#

你把它初始化为一个有键值对的字典怎么样?这样你就引用了键(字符串)或者值(ndarray)

  1. import numpy as np
  2. a = np.array([0,0])
  3. b = np.array([1,0])
  4. c = np.array([2,0])
  5. my_array_list = {'a':a,'b':b,'c':c}
  6. for key, value in my_array_list.items():
  7. np.save('{} is representative of {}'.format(key, value)

字符串

相关问题