我是编程新手,几乎不掌握术语,所以请原谅我可能遇到的任何基本问题。
我正在尝试列出数组的数组。
我在二维数组上编写了一个函数,该函数列出了数组中的最高值及其出现的点。这些点(最大值)形成数组[i,j],为了便于显示,我想将其收集到单个 numpy array 或 list 中max_p。据我所知,最明智的方法是使用numpy.append( max_p, [i,j] ). 问题在于它合并 [i,j])到max_p数组中,以便我得到单个值的数组而不是有序对。所以我决定将整个事情转换成一个列表。
在大多数情况下,这很有效——我得到了可以在一行中打印出来的有序对列表。
但是,大列表中的数组max_p不会打印为,比如说[a,b]。它们被打印为array([a,b]). 无论我是否使用max_p.tolist()或 ,都会发生这种情况list(max_p)。
当然,如果没有实际的代码,这些都没有意义,所以它是:
def maxfinder_2D(array):
maxima_array = numpy.array([]) # placeholder array
for i in range(0, 422): # side note: learn how to get dim.s of
# a multidimensional array
x_array = array [i,:] # set array to be the i-th row
# row_max = numpy.append(row_maxfinder_1D(x_array))
maxima_array = numpy.append(maxima_array, numpy.array([maxfinder_1D(x_array)]))
# We construct a new array, maxima_array, to list the
# maximum of every row in the plot.
# The maximum, then, must be the maximum of this array.
max_2D = maxfinder_1D(maxima_array)
print("The maximum value in the image is: ", max_2D)
global max_p
max_p = []
# This gives us the maximum value. Finding its location is another
# step, though I do wish I could come up with a way of finding the
# location and the maximum in a single step.
这是输出(部分):
The maximum value in the image is: 255.0 The function attains its maximum of 255.0 on [array([200., 191.]), array([200., 192.]), array([201., 190.]), array([201., 193.]), array([202., 190.]), array([202., 193.]), array([203., 193.]), array([204., 191.]),...
我希望数组显示为简单的,例如[200. , 191.].
为什么会出现这种“神器”呢?它与 numpy 如何将数组与列表相关联吗?
素胚勾勒不出你
白猪掌柜的
相关分类