当我使用 for 循环进行迭代时,有没有办法在嵌套列表中找到子列表的索引?

如何解决当我使用 for 循环进行迭代时,有没有办法在嵌套列表中找到子列表的索引?

我有一个二维数组,其中子列表的索引是 y 坐标,子列表中的元素是 x 坐标。

nested_lst = [ [32.6,45.1,22.1,...,36.8],[41.5,33.2,...],[12.8,37.8,[34.4,35.1,...] ]

这是一个大数组 - (2048,2098) - 浮点数。我想绘制一个散点图,其中点是满足 if item > 45 等条件的元素。

到目前为止我有这个:

xcoord = []
ycoord = []

for sublist in nested_lst:
    for (index,item) in enumerate(sublist):
        if item > (45):
            xcord.append(index)
            ycord.append(nested_lst.index(sublist))

我运行它,但它给了我这个错误信息:

ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

不确定我是否应该提到嵌套列表是 FITS 文件中 CCD 图像的数据数组,我已将其放大到中心以聚焦在对象上。我制作这个散点图的目的是让我可以测量图像的某些特征,所以我想首先绘制特征边界的图,因为我可以通过它们的亮度(即子列表的值)来区分它们,然后在椭圆特征与其轴对应,然后绘制一条从特征一端到另一端的线并找到它的距离。由于值错误,我一直坚持将嵌套列表分成坐标。我真的很感激一个新的视角!

解决方法

xcoord = []
ycoord = []

for (ycord,sublist) in enumerate(nested_lst):
    for (xcord,item) in enumerate(sublist):
        if item > 45:
            xcord.append(xcord)
            ycord.append(ycord)
,

y 轴你想要什么如果值那么这将起作用

  xcord = []
  ycord = []
    
  for sublist in nested_lst:
  for (index,item) in enumerate(sublist):
      if item > (45):
          xcord.append(index)
          ycord.append(item)
,

我认为您的错误是因为 item 之一不是浮点数,但鉴于您的nested_lst 的结构,我不明白为什么会这样。您需要提供完整的nested_lst 数组让我知道。

其次,你有一个小错误;您正在尝试附加到 xcord 和 ycord,这应该是 xcoord 和 ycoord。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?