問題タブ [recarray]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - recarray の複数フィールドのインデックス作成に関するドキュメントについて
numpy docsのセクションAccessing multiple fields at onceでは、次のように述べています。
要求された順序に関係なく、フィールドは常に同じ順序で返されることに注意してください。
ドキュメントには、次のような例も示されています。
ただし、numpy 1.6.1 で自分でコードを実行したところ、別の結果が得られました。
この動作は numpy 1.6 から 1.7 に変更されましたか、それとも何か見逃していますか?
編集numpy 1.7.1 でコードをテストしましたが、結果は numpy 1.6 と同じでした。
python - 「空の」行でnumpy再配列をスライスする
numpy.recarray
-Method を使用して .csv-Inputfile からを作成しましたcsv2rec()
。Inputfile とその結果としての再配列には、データのない空の行があります (resp. nan
-values)。以下に示すように、最終的な配列nan
の -rows を除外して、 -rows でこの再配列を複数のサブ配列にスライスしたいと考えています。nan
2 列の元の再配列:
nan 値のない 2 つのサブ配列:
と
これはループを使用して管理できることは知っていますが、もっとシンプルでエレガントな方法があるのではないでしょうか? さらに:各列のヘッダー情報を保持して、スライス後に列インデックスだけでなく、パラメーター名で列を参照できるようにすることは可能ですか?
python - numpy 構造化配列に新しいレコードを追加する
これは、numpy 配列に関する以前の学習の続きです。
リストの要素から構造化配列が作成され、その後、値が入力されます (以下には示されていません)。
設定された配列は次のようになります。
1.上記に新しい頂点を追加するにはどうすればよいですか?
2.頂点が追加されたら、次の配列を構造化配列に追加する最もクリーンなプロセスは何ですか (注: この配列のすべての頂点が新しいわけではありません)。
予想される出力(ご容赦ください):
python - C-API 経由で Numpy Recarray にアクセスする
Numpy recarray がある場合
: x = np.array([(1.,2.)], dtype=np.dtype([('a','<f8'),('b','<f8')]))
Python でそのフィールドに次
のようにアクセスできます。C で dtype を取得できることはわかっていますが、これを使用して のデータにアクセスするにはどうすればよいでしょうか?
x['a']
x['b']
PyArrayObject
PyArray_Descr *dtype = PyArray_DTYPE(arr)
PyObject *fields = dtype->fields
x['a']
python - numpy 再配列のフィールド #k にアクセスするにはどうすればよいですか?
再配列を作成し、そのメンバーに名前でアクセスできます。
行インデックスでデータにアクセスしたり、行を反復処理したりできます。
しかし、どうすればフィールドを反復処理したり、再配列のk
th フィールドを取得したりできますか?
python - 1 つの dtype がオブジェクトの場合、numpy のマスクされた配列の動作が異なります
次の 2 つのマスクされた配列宣言があるとします。
ご覧のとおり、唯一の (わずかな?) 違いは、「p3」フィールドが のオブジェクトでarr1
あり、 の int であることですarr2
。
通話arr2[0]
OKです(--, 2.0, 3)
。
ただし、 の一部の要素をマスクするとarr1
、 を呼び出すとarr1[0]
次のエラーが発生します。
*** ValueError: Setting void-array with object members using buffer.
明らかに、1 つのフィールドをオブジェクトとして宣言すると、いくつかの問題が発生しますが、その理由はまったくわかりません。
これについてどう思いますか?その方法で「arr1[0]」にアクセスする必要があることを念頭に置いて、その問題を回避する方法をいくつか見つけてください。
どうもありがとう
エリック
編集: この問題は numpy バージョン < 1.8 で発生します。最新バージョン(1.8)で試してみましたが、問題ありません。
python - サブクラス化された空の numpy 再配列はその型を失い、numpy 1.8 で属性が追加されました
numpy recarray (recsub) のサブクラスを実装し、そのインスタンスを dtype 'object' (ndarr) の ndarray に割り当てようとしています。うまく機能しますが、サブクラス化された再配列が空の配列でインスタンス化されると問題が発生します。これは、サブクラス化された再キャリーのコードです。
ndarray を次のように作成します。
今、 recsub の 2 つのインスタンスを作成すると:
今、ここで奇妙なことが起こっています。の出力:
は:
だから私はndarri[1].xにアクセスできません
これは numpy 1.7 では機能していましたが、numpy 1.8 では機能しなくなりました! そのため、(n) ではなく形状 () を使用して再配列をインスタンス化すると、何かが欠けているようです。
どんな提案でも大歓迎です
事前にtnx、