В приведенном ниже коде я ожидаю, что arr2
вернет тот же список строк, что и lst2
, но это не так. Почему lst2
и arr2
различны? Есть ли какой-нибудь NumPythonic способ заставить arr2
возвращать тот же список строк, что и lst2
?
код:
import numpy as np
lst = [['MI', '', 'P'],
['B', 'N', 'SUFS'],
['KOS', 'XJRXA', 'JJHW'],
['ARI', 'TPKI', ''],
['VR', 'EYR', '']]
arr = np.array(lst)
arr2 = np.apply_along_axis(lambda x: "".join(x), 1, arr)
lst2 = list(map(lambda x: "".join(x), lst))
print('lst:', lst)
print('arr:', arr.tolist())
print('lst2:', lst2)
print('arr2:', arr2.tolist())
выход:
lst: [['MI', '', 'P'], ['B', 'N', 'SUFS'], ['KOS', 'XJRXA', 'JJHW'], ['ARI', 'TPKI', ''], ['VR', 'EYR', '']]
arr: [['MI', '', 'P'], ['B', 'N', 'SUFS'], ['KOS', 'XJRXA', 'JJHW'], ['ARI', 'TPKI', ''], ['VR', 'EYR', '']]
lst2: ['MIP', 'BNSUFS', 'KOSXJRXAJJHW', 'ARITPKI', 'VREYR']
arr2: ['MIP', 'BNS', 'KOS', 'ARI', 'VRE']