我想通過對np.array(range(5)).astype(str)
給出的整個數組進行操作來獲得結果array(['0th', '1th', '2th', '3th', '4th'])
。我嘗試這樣做:不受支持的操作數類型爲+:'numpy.ndarray'和'str'
>>> np.array(range(5))
array([0, 1, 2, 3, 4])
>>> np.array(range(5))*2
array([0, 2, 4, 6, 8])
>>> np.array(range(5)).astype(str)
array(['0', '1', '2', '3', '4'],
dtype='<U24')
>>> np.array(range(5)).astype(str)+"th"
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for +: 'numpy.ndarray' and 'str'
我知道我能做到這一點使用列表理解:
[ x+"th" for x in np.array(range(5)).astype(str) ] # can get the result,
,但我希望有一個量化的方式做同樣的事情,如:
pandas.date_range("20150105",periods=16*7,freq="D").format(formatter=lambda x:x.strftime("%Y%m%d"))
這可能嗎?
你爲什麼不喜歡列表理解的
ndarray
元素?在我的測試中,速度更快。你的'pandas'表達式返回一個列表。 – hpaulj更快的列表操作''('{} th'.format,range(N))',模擬熊貓'格式'。 – hpaulj