1

最初の行と列のみが実際の文字列値 (アルファベット) であり、残りの値は数値であり、その型が文字列として割り当てられています。これらの数値を float または integer 型に変更したいと考えています。

いくつかの手順を試しました:

を。配列の最初の行と列のコピーを個別の変数として作成しました。

x_row = x[0]
x_col = x[:,0]

次に、元の配列からそれらを削除しx(numpy.delete() メソッドを使用)、各値を反復する for ループを適用して残りの値の型を変換しました。ただし、 and を使用してコピーした行と列を積み重ねるnumpy.vstack()numpy.hstack()、すべてが再び文字列型に変換されます。だから、なぜこれが起こっているのか分かりません。

b. numpy.insert()行と列を挿入する方法を使用したことを除いて、ポイントaと同じ手順ですが、同じことを行っています-すべてを文字列型に変換します。

では、この削除とスタックのメカニズム (とにかく機能していない) を通過する必要がなく、配列のすべての値 (最初の行と列を除く) をint()またはfloat()タイプに変更できる方法はありますか?

4

1 に答える 1

4

numpy 配列内のすべてのアイテムは、同じ dtype を持つ必要があります。これは numpy に関する基本的な事実です。numpy rearray を使用することも、dtype=object基本的にすべての値を何でもできるものを使用することもできます。

さまざまな列にさまざまな型を持たせることができる表形式のデータ構造を提供するpandasをご覧になることをお勧めします。あなたが持っているのは行と列のラベルが付いたテーブルのように聞こえますが、それは pandas がうまく処理するものです。

于 2013-01-02T22:58:27.750 に答える