2017-05-30 8 views
0

を開いて表示することができませんが、私は私はフォルダからランダムに画像を開いて、matplotlibのをinline.Followingを使用してそれを表示しようとしている画像ファイル

fileObject = open("notMNIST_small/J.pickle",'rb') 
read_list = pickle.load(fileObject) 
random_image = np.random.choice (read_list) 
%matplotlib inline 
plt.imshow(random_image) 

何をしたかである私は、以下のエラーが出ます。私は間違って何をしていますか?

ValueError        Traceback (most recent call last) 
<ipython-input-25-a10f05254093> in <module>() 
     1 fileObject = open("notMNIST_small/J.pickle",'rb') 
     2 read_list = pickle.load(fileObject) 
----> 3 random_image = np.random.choice (read_list) 
     4 get_ipython().magic(u'matplotlib inline') 
     5 plt.imshow(random_image) 

    mtrand.pyx in mtrand.RandomState.choice  (numpy/random/mtrand/mtrand.c:15428)() 

    ValueError: a must be 1-dimensional 

答えて

0

numpy's random.choice機能のインターフェースはsizeと呼ばれる2番目のキーワード引数を持っています。データ配列から抽出するサンプル数を指定します。デフォルトではsizeNoneに設定されています。この場合、データセットから抽出されるサンプルは1つのみです。

問題を解決するには、変数nを定義し、必要な値の数をrandom.choiceから初期化します。

n = 10 # for example 
random_image = np.random.choice(read_list, n) 

すべての値をシャッフルする必要がある場合は、代わりにrandom.shuffleを使用することをおすすめします。上記の行を単に次のように置き換えてください:random.shuffleは返り値を持たないことに注意してください。それはread_listが変更されることを意味しています。

関連する問題