2017-08-21 4 views
0

をnumpyのために文字列要素を追加することはできません私はPythonとnumpyのに新たなんだと私は、混合データ型の配列を作成したいが、私はこのエラーを取得:がゼロの配列

>>> m = np.zeros((5,10)) 
>>> m[0,0] = 'e' 

Traceback (most recent call last): 
File "<pyshell#17>", line 1, in <module> 
m[0,0] = 'e' 
ValueError: could not convert string to float: e 

私が使用しています大規模な配列を実装して編集する方が簡単です。 配列のデータ型を変更しようとしましたが、適切な配列が見つかりませんでした。

+0

「dtype」パラメータがあります。 [this](https://docs.scipy.org/doc/numpy/reference/generated/numpy.zeros.html) –

+1

を参照してください。[numpyのドキュメントのこの部分](https:///docs.scipy.org/doc/numpy/user/basics.rec.html)。 –

答えて

3
  1. あなたは本当に、本当には、混合データ型の配列をしたいdtype = objectを使用している場合。今

    m = np.zeros((5,10), dtype = object) 
    
    m[0,0] = 'e' 
    
    m 
    Out[105]: 
    array([['e', 0, 0, 0, 0, 0, 0, 0, 0, 0], 
         [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 
         [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 
         [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 
         [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], dtype=object) 
    
  2. オブジェクト配列はかなり役に立たないとほとんどnumpyの機能が一緒に仕事しないので、あなたはおそらく、本当にそれを望んでいません。たとえば、データベースを配列にインポートする場合は、Structured Arrayを使用します。 numpy

  3. 効率的なインデックススキームを使用して大きなデータベースを扱う方法を本当に望むなら、おそらくそうではありません。 numpyがほしいですが、代わりにpandasまたはdaskが欲しいです。 numpyは、記憶域ではなく計算用に最適化されています。

+0

私はそれが働いたタイプとして 'a2'を試しました。私はただ迷路エスケープアルゴリズムを実装しようとしているだけで、数字の代わりにマップを表現するための「もっと素敵な」方法を望んでいました。 –

関連する問題