iT邦幫忙

0

合法的reshape轉換

  • 分享至 

  • xImage

如圖,請問怎麼驗證reshape轉換?
https://ithelp.ithome.com.tw/upload/images/20220326/20136815ZI0E9zMTGK.png

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
Peter
iT邦新手 4 級 ‧ 2022-03-30 13:02:35
import numpy as np
def reshape_check(before_array, after_array):
    # before_array 被轉換的
    # after_array 目標轉換成
    try:
        # 建立由1組成的before_array結構後,reshape至after_array
        my_array = np.ones(before_array).reshape(after_array) 
        print(f'from {before_array} to {after_array} success')
        return my_array
    except Exception as e:
        # 無法轉換報錯
        print(e)

'''
範例1:
reshape_check((10, 20, 30),(-1, 13))
>> cannot reshape array of size 6000 into shape (13)

範例2:
reshape_check((1, 2, 3),(1, 6))
>>from (1, 2, 3) to (1, 6) success
>>array([[1., 1., 1., 1., 1., 1.]])

'''
看更多先前的回應...收起先前的回應...

你好,在使用你的程式碼確認答案時遇到錯誤:
https://ithelp.ithome.com.tw/upload/images/20220330/20136815kWDDRTLL5t.png

Peter iT邦新手 4 級 ‧ 2022-03-30 15:26:04 檢舉

因為你的語法錯了

# define的時候,參數接口是變數名,不能直接傳入數值
def reshape_check(before_array, after_array)

# 後面在call的時候才能丟數值進去
reshape_check((10, 20, 30),(-1, 13))

# 完整程式碼長這樣
import numpy as np
def reshape_check(before_array, after_array):
    # before_array 被轉換的
    # after_array 目標轉換成
    try:
        # 建立由1組成的before_array結構後,reshape至after_array
        my_array = np.ones(before_array).reshape(after_array) 
        print(f'from {before_array} to {after_array} success')
        return my_array
    except Exception as e:
        # 無法轉換報錯
        print(e)

reshape_check((10, 20, 30),(-1, 13))

!看懂了! 是要先把程式碼打好,後面才丟數值進去給他檢查!!謝謝你~

Peter iT邦新手 4 級 ‧ 2022-03-31 09:10:06 檢舉

建議還是要詳細了解一下shape是什麼,透過工具也是一種了解的方式,在了解了之後,以你原本的題目來說應該心算就可以知道答案了。

參考:
python function
numpy shape

若有幫到你的話就選個最佳解答吧

我要發表回答

立即登入回答