【问题标题】:create 2d array with lists as entries创建以列表为条目的二维数组
【发布时间】:2016-08-30 16:24:28
【问题描述】:

我想创建一个包含 python 列表作为条目的 2d numpy 数组。 主程序会将 ID 附加到每个条目。最后,我需要搜索附加 ID 最多的条目。稍后我将需要这些 ID,因为这是一个带有整数条目的简单二维数组,它只是递增,不会解决我的问题。 所以我的问题是: 如何创建一个包含 Python 列表作为条目的 2d numpy 数组?

import cv2
import numpy as np

#get image
image_rgb = cv2.imread('testpic.png')
#grayscale imgae
image = cv2.cvtColor(image_rgb, cv2.COLOR_BGR2GRAY)

#generate evalutatearray (2d array with list entrys)
evaluatelist = np.empty(image.shape)

ID = 443

evaluatelist[34,78].append(ID)

【问题讨论】:

  • 那么你的问题是什么?
  • 加个样例让我们达到和你一样的理解水平?简而言之,如果可能,请添加mcve
  • 您似乎正在尝试标记图像中的区域?
  • 是的,完全正确。它是椭圆检测算法的一部分。我在这个二维数组中画线,并希望椭圆的中心是大多数线交叉的地方。要检测椭圆边界,我需要知道哪些线被越过了...

标签: python arrays list numpy


【解决方案1】:

您可以尝试创建一个空的 numpy 对象类型数组,然后将列表分配给数组条目,您必须这样调整您的代码

evaluatelist = np.empty(image.shape, dtype=object)
for x in xrange(evaluatelist.shape[0]):
    for y in xrange(evaluatelist.shape[1]):
        evaluatelist[x,y] = []

这是假设使用 image.shape 创建数组有效。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-03
    • 1970-01-01
    • 2016-12-27
    相关资源
    最近更新 更多