21

文字列の配列が2つあります。

In [51]: r['Z']
Out[51]: 
array(['0', '0', '0', ..., '0', '0', '0'], 
      dtype='|S1')

In [52]: r['Y']                                                                                                                
Out[52]: 
array(['X0', 'X0', 'X0', ..., 'X0', 'X1', 'X1'], 
      dtype='|S2')

S1とS2の違いは何ですか?異なる長さのエントリを保持しているだけですか?

配列に異なる長さの文字列がある場合はどうなりますか?

考えられるすべてのdtypeのリストとその意味はどこにありますか?

4

2 に答える 2

32

dtypesドキュメントを参照してください。

および文字列|S1|S2データ型記述子です。1つ目は、配列が長さ1の文字列を保持することを意味し、2つ目は長さ2の文字列を保持します。|パイプ記号はバイトオーダーフラグです。この場合、バイトオーダーフラグは必要ないため、に設定され|ます。これは、該当しないことを意味します。

于 2013-02-09T16:32:56.897 に答える
4

可変長の文字列をnumpy配列に格納するために、それらをpythonオブジェクトとして格納できます。例えば:

In [456]: x=np.array(('abagd','ds','asdfasdf'),dtype=np.object_)

In [457]: x[0]
Out[457]: 'abagd'

In [459]: map(len,x)
Out[459]: [5, 2, 8]

In [460]: x[1]=='ds'
Out[460]: True

In [461]: x
Out[461]: array([abagd, ds, asdfasdf], dtype=object)

In [462]: str(x)
Out[462]: '[abagd ds asdfasdf]'

In [463]: x.tolist()
Out[463]: ['abagd', 'ds', 'asdfasdf']

In [464]: map(type,x)
Out[464]: [str, str, str]
于 2013-08-22T18:47:52.203 に答える