1
我試圖用numpy.vectorize一些整數轉換爲字符串輸出的字符串長度。但是,似乎輸出字符串總是限制爲最多8個字符。如何明確指定numpy.vectorize
In [1]: import numpy as np
In [2]: str = "abcdefghijklmnopqrstuvwxyz"
In [3]: def num_str(num):
...: return str[:num]
...:
In [4]: np.vectorize(num_str)(np.arange(15))
Out[4]:
array(['', 'a', 'ab', 'abc', 'abcd', 'abcde', 'abcdef', 'abcdefg',
'abcdefgh', 'abcdefgh', 'abcdefgh', 'abcdefgh', 'abcdefgh',
'abcdefgh', 'abcdefgh'],
dtype='|S8')
我也嘗試明確指定型,但即使這樣似乎並不奏效。
In [5]: np.vectorize(num_str, otypes=["|S25"])(np.arange(15))
Out[5]:
array(['', 'a', 'ab', 'abc', 'abcd', 'abcde', 'abcdef', 'abcdefg',
'abcdefgh', 'abcdefgh', 'abcdefgh', 'abcdefgh', 'abcdefgh',
'abcdefgh', 'abcdefgh'],
dtype='|S8')
截至目前,我將otype設置爲對象並最終將它們轉換爲字符串。
In [6]: np.vectorize(num_str, otypes=["O"])(np.arange(15)).astype('|S25')
Out[6]:
array(['', 'a', 'ab', 'abc', 'abcd', 'abcde', 'abcdef', 'abcdefg',
'abcdefgh', 'abcdefghi', 'abcdefghij', 'abcdefghijk',
'abcdefghijkl', 'abcdefghijklm', 'abcdefghijklmn'],
dtype='|S25')
有沒有更好的方法來做到這一點?
感謝您的信息。 –