私は、特定の時間枠内でリレーのオン/オフをランダムに切り替えるラズベリーパイのプロジェクトを作成しています。タイムスロットを管理するために、毎日生成される2次元配列を使用したいと考えています。だから、私のPythonアプリケーションは、前日の配列を空にして、ランダムに生成されるon/offタイムスロットを設定する必要があります。私はどのように配列に自分の時間値を追加するのか分かりません。誰か助けてくれますか? は、ここに私のコードです:代わりにそれとNumpyが配列に追加する
daily_slots = np.empty([1], dtype=[('onTime', np.dtype(int)), ('offTime', np.dtype(int))])
# numpy populates the array with whatever is in memory at that time,
# so delete the existing, 'empty' array row
daily_slots = np.delete(daily_slots, 0, 0)
、私は値を追加しますか? numpyのドキュメントは、私は、次のような何かをしなければならないと言う。
daily_slots = np.append(daily_slots, [700, 800])
しかし、それは私が考えることができるすべてを試みたと私はつついとで突いてきた私は
Traceback (most recent call last):
File "./controller.py", line 351, in <module>
init_app()
File "./controller.py", line 128, in init_app
build_daily_slots_array()
File "./controller.py", line 307, in build_daily_slots_array
daily_slots = np.append(daily_slots, [700, 800])
File "/usr/lib/python2.7/dist-packages/numpy/lib/function_base.py", line 3555, in append
return concatenate((arr, values), axis=axis)
TypeError: invalid type promotion
を取得し、働いていませんnumpyのドキュメントと私は答えを見つけていない。
配列を正しく宣言していませんか?私は各配列 '行'を2要素の配列(オンタイムとオフフタイム)で構成したいと思います。
numpy appendはverry slowです。numpyは連続したメモリを保証します。代わりにPythonリストを使用してください。 – yar
おそらくリストがほしいだけです。または、本当にいくつかのランダムな値の配列が欲しい場合は、 'np.random'を使います。あなたはほとんど 'np.append'を望んでいません。あなたのアプローチはあまり意味がありません。空の配列を初期化してから行を削除し、行を追加します。これはnumpyを使用する方法ではありません。 –
どちらの回答も私の問題を解決するのに役立ちません。代わりのアプローチを提案することは、その質問に答えておらず、役に立たない。 – johnwargo