ls_ord_symbols = np.zeros((len(na_csv_orders), 1), dtype='S5')
>>> print ls_ord_symbols
[['AAPL']
['IBM']
['GOOG']]
>>> print type(ls_ord_symbols)
<type 'numpy.ndarray'>
>>> print type(ls_ord_symbols[0])
<type 'numpy.ndarray'>
>>> print ls_ord_symbols[0][0]
AAPL
>>> print type(ls_ord_symbols[0][0])
<type 'numpy.string_'>
>>> print str(ls_ord_symbols[0][0])
AAPL
>>> print type(str(ls_ord_symbols[0][0]))
<type 'str'>
問題>我需要提取存儲內numpy.array與原始類型的每個元素。這裏,ls_ord_symbols
將字符串存儲在numpy.array中。如何從numpy的數組元素中提取
我不得不使用下面的方法來提取原始元素:
str(ls_ord_symbols[i][0])
是否有更好的方法來做到這一點給出的指數i
?基本上,我希望簡單地獲得['AAPL','IBM','GOOG']或'AAPL','IBM','GOOG'列表作爲每個單獨的字符串,而迭代通過此numpy.array索引i
看看'ls_ord_symbols.shape'。你可能會看到你有一個額外的維度,你不需要/想要。 – askewchan
將字符串放入numpy數組時,「原始類型」會丟失,因爲numpy會將所有內容都轉換爲自己的優化類型。如果你想要一個普通的字符串,你需要自己轉換numpy類型(就像你用'str'所做的那樣)。 (爲什麼你需要它是一個「真正的」str?) – BrenBarn
我只需要得到一個字符串列表並使用np.zeros來做到這一點。因爲我認爲[] .append(字符串)會很昂貴而且很慢。 – q0987