当前位置: 首页 > 面试题库 >

用索引迭代numpy(相当于python枚举的numpy)

齐健柏
2023-03-14
问题内容

我正在尝试创建一个函数,该函数将计算多维numpy数组中元素之间的晶格距离(水平和垂直步数)。为此,我需要在遍历数组时从每个元素的索引中检索实际数字。我想将这些值存储为可以通过距离公式运行的数字。

对于示例数组A

 A=np.array([[1,2,3],[4,5,6],[7,8,9]])

我想创建一个循环遍历每个元素的循环,对于第一个元素1,它将检索a = 0,b = 0,因为1处于A [0,0],然后对于元素来说a = 0,b = 1
2,因为它位于A [0,1],依此类推…

我设想的输出是数组中每个元素的两个数字(对应于该元素的两个索引值)。因此,在上面的示例中,这就是我分配的两个值分别为a和b。我只需要在循环内检索这两个数字(而不是分别另存为另一个数据对象)。

任何想法如何做到这一点将不胜感激!


问题答案:

您可以使用来遍历数组中的值,numpy.ndenumerate以获取数组中值的索引。

使用上面的文档:

A = np.array([[1,2,3],[4,5,6],[7,8,9]])
for index, values in np.ndenumerate(A):
    print(index, values)  # operate here


 类似资料:
  • 问题内容: C#中的Java枚举相当于什么? 问题答案: 完整的Java枚举功能在C#中不可用。你可以来 合理地 接近使用嵌套类型和私有构造虽然。例如: 当然你不 具备 使用嵌套类型,但他们给了方便的“自定义的行为”其中一部分的Java枚举是好的。在其他情况下,您可以仅将参数传递给私有构造函数以获取众所周知的受限值集。 一些不能给您的事情: 顺序支持 开关支持 序列化/反序列化(作为单例) 尽管没

  • 问题内容: 是否可以使用Lambda表达式进行迭代?以下代码段的Lambda表示形式是什么: 我在其中找不到任何流。 问题答案: 如果您不喜欢在迭代开始之前将全部内容复制到(临时)列表中的事实,则可以使用简单的实用程序方法来帮助自己: 然后,您可以简单地进行操作(注意该功能)…

  • 问题内容: 在阅读有效的Java时,我遇到了“使用枚举而不是常量”的建议。在当前项目中,我正在执行与以下类似的操作: 我将如何使用枚举来实现此目的?由于必须使用该接口,因此必须为索引使用。上面的例子只是一个例子。我实际上正在使用一个for索引值的API 。 问题答案: 将一种有用的模式与一种反模式一起应用通常会失败;-) 在您的情况下,如果要用值替换常量,则将数组用于非真正的类数组数据会带来问题。

  • 我正在使用Compass从DTO对象中过滤数据。如果字段是POJO对象,则使用标记字段;如果字段是字符串,则使用标记字段。这非常有效:我将对象和字符串编入索引。 我的问题是如何注释枚举数据类型? 我拥有的枚举示例: 在这个片段中,我应该在哪里放置注释,应该放置哪个注释?

  • 本文向大家介绍列表中特定于Python索引的循环迭代,包括了列表中特定于Python索引的循环迭代的使用技巧和注意事项,需要的朋友参考一下 在本教程中,我们将编写一个程序来循环访问给定列表中的列表。让我们看一下解决问题的步骤 初始化列表和索引。 使用len查找列表的长度。 使用长度遍历列表。 使用index%length查找元素的索引。 打印元素。 递增索引。 这是一个简单的循环迭代。您可以编写它