Я хочу закодировать функцию для преобразования массива 2D numpy в матричный синтаксис Mathematica. Однако я обнаружил неожиданное поведение функции numpy .apply_along_axis .
Это фрагмент кода, показывающий это странное поведение
import numpy as np
A=np.array([[-5,6,-7,6,0],[-5,-3,-9,-1,0],[1,-4,0,-4,-4],[4,0,-3,-4,3]])
func=lambda x: '{' + ','.join(x) + '}'
A=A.astype(str)
print(np.apply_along_axis(func,1,A))
print([func(row) for row in A])
Вывод :
['{-5,6,-7,6,0}' '{-5,-3,-9,-1,' '{1,-4,0,-4,-4' '{4,0,-3,-4,3}']
['{-5,6,-7,6,0}', '{-5,-3,-9,-1,0}', '{1,-4,0,-4,-4}', '{4,0,-3,-4,3}']
Похоже, что функция func
неправильно применяется к строкам 1 и 2 массива A
.
Python version: 3.6.9
OS: Ubuntu Linux 18.04.4 LTS
Numpy version: 1.13.3