0

このエラーは複数の質問で見つかりましたが、修正も説明もされていません。loadtxtを使用して単一のstr列を読み取る

次の行に問題があります(import numpy as np

    symbols = np.loadtxt('filename.csv',
               dtype={'names': ('ticker', 'year', 'month','day'),
                      'formats': ('S10','i4','i2','i2')},
                delimiter=',',skiprows=1, usecols=(0,))

以下のデータで

ticker  year    month   day
GPD.TO  2010    8   16
HAO.V   2010    8   16
RDS.V   2010    8   16
MD.V    2010    8   16

それは私に

IndexError: list index out of range

その行を実行せずに実行すると、usecols正常に機能し、4列すべてが正常に返されます。

私はグーグルとStackoverflowで他の多くの質問を見ましたが、これは答えられていません

4

1 に答える 1

5

で使用する場合usecols = (0,)は、に一致するようにnp.loadtxt変更する必要があります。dtype

import numpy as np
symbols = np.loadtxt('filename.csv',
                     dtype={'names': ('ticker', ),
                            'formats': ('S10',)},
                     delimiter=',',
                     skiprows=1,
                     usecols=(0,)
                     )
print(symbols)

filename.csv

ticker,year,month,day
GPD.TO,2010,8,16
HAO.V,2010,8,16
RDS.V,2010,8,16
MD.V,2010,8,16

収量

[('GPD.TO',) ('HAO.V',) ('RDS.V',) ('MD.V',)]

または、np.genfromtxt変更する必要はありませんdtype

symbols = np.genfromtxt('filename.csv',
                        dtype={'names': ('ticker', 'year', 'month','day'),
                               'formats': ('S10','i4','i2','i2')},                        
                        delimiter=',',
                        skiprows=1,
                        usecols=(0,)
                        )

同様に動作します。

于 2012-12-06T21:43:17.300 に答える