亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Python 3.7 - 打印 NumPy 數組列表會在實際數組前面打印“array”。為什么?

Python 3.7 - 打印 NumPy 數組列表會在實際數組前面打印“array”。為什么?

ibeautiful 2023-08-15 16:28:57
我是編程新手,幾乎不掌握術語,所以請原諒我可能遇到的任何基本問題。我正在嘗試列出數組的數組。我在二維數組上編寫了一個函數,該函數列出了數組中的最高值及其出現的點。這些點(最大值)形成數組[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 如何將數組與列表相關聯嗎?
查看完整描述

2 回答

?
素胚勾勒不出你

TA貢獻1827條經驗 獲得超9個贊

Python對象有repr和str顯示方法


In [1]: x = np.arange(3)

In [2]: x

Out[2]: array([0, 1, 2])

In [3]: repr(x)

Out[3]: 'array([0, 1, 2])'

In [4]: str(x)

Out[4]: '[0 1 2]'

In [5]: print(x)

[0 1 2]

對于列表,它們[,]對于列表本身和repr元素是相同的:


In [6]: alist = [x]

In [7]: alist

Out[7]: [array([0, 1, 2])]

In [8]: repr(alist)

Out[8]: '[array([0, 1, 2])]'

In [9]: str(alist)

Out[9]: '[array([0, 1, 2])]'


查看完整回答
反對 回復 2023-08-15
?
白豬掌柜的

TA貢獻1893條經驗 獲得超10個贊

也許您可以嘗試使用數組的字符串表示形式

print("The function attains its maximum of ",maxfinder_2D(img)," on ", np.array2string(max_p))


查看完整回答
反對 回復 2023-08-15
  • 2 回答
  • 0 關注
  • 170 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號