Я ищу для заполнения массива 900-some by 38 в python. Каждая строка соответствует определенному контуру, и каждый столбец соответствует признаку для этого контура. Я просматриваю каждый контур и вычисляю свойства области для контура, но я не понял наиболее эффективный способ сделать это.Создание больших массивов в Python
Я подумал о создании списка и добавлении каждого значения столбца для каждого контура, а затем попытался соединить все эти списки друг с другом, но мне кажется, что я не хочу создавать списки со встроенным и затем попытайтесь использовать numpy для создания массивов. Я даже не уверен, что структуры данных совместимы.
Каждый пример, который я видел, подал данные массива, но я хочу рассчитать значение и затем вставить его в массив.
Основы моего кода ниже. Является ли создание массива 1D длиной 34 200 элементов, а затем его наилучшим вариантом?
cs = find_contours(Image)
print len(cs)
for c in cs:
Area = moments['m00']
features.append(Area)
Perimeter = cv2.arcLength(c,True)
# bounding box: x,y,width,height
BoundingBox = cv2.boundingRect(c)
# centroid = m10/m00, m01/m00 (x,y)
Centroid = (moments['m10']/moments['m00'],moments['m01']/moments['m00'])
# EquivDiameter: diameter of circle with same area as region
EquivDiameter = ny.sqrt(4*Area/ny.pi)
features.append(EquivDiameter)
# Extent: ratio of area of region to area of bounding box
Extent = Area/(BoundingBox[2]*BoundingBox[3])
# CONVEX HULL stuff
# convex hull vertices
ConvexHull = cv2.convexHull(c)
ConvexArea = cv2.contourArea(ConvexHull)
# Solidity := Area/ConvexArea
Solidity = Area/ConvexArea
Поэтому я ищу, чтобы сохранить ценности, такие как площадь, периметр, и т.д. для каждого контура в качестве I контура через них.
Это выглядит как ответ может быть ищет: http://stackoverflow.com/questions/869778/populating-a-list-array-by-index-in-python – Acehilm
@Fappycow: Нету, то OP спрашивает о массивах numpy, поэтому списки, безусловно, являются неправильной вещью здесь ... – burnpanck
Почему приостановлено? Если вы переводите «лучший способ» как «самый эффективный», то это вовсе не мнение, основанное на мнениях. Кроме того, ответ не очевиден для неопытных пользователей. – burnpanck