python으로 돼있는걸 C#으로 포팅할 일이 있어서 알아보고 있는 중에 발견한 것들입니다.
numpy 등 라이브러리를 사용한 경우가 많은데 numpy 같은 경우 C#으로 만들어진 것들이 있습니다.
https://github.com/SciSharp/NumSharp
일단 사용에는 무리가 없어보이는데 좀 관리가 된 지 오래된 거 같아 보입니다. (마지막 게시 2021-02-15)
Reshape 함수 테스트 ('NumSharp' Nuget 설치)
using NumSharp;
namespace ReshapeTest
{
internal class Program
{
static void Main(string[] args)
{
// [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
var ndarray = np.arange(12);
// [[0, 1, 2, 3, 4, 5], [6, 7, 8, 9, 10, 11]]
var array2d = ndarray.reshape(2, 6);
// [[[0, 1, 2], [3, 4, 5]], [[6, 7, 8], [9, 10, 11]]]
var array3d = ndarray.reshape(2, 2, 3);
}
}
}
결과
https://github.com/SciSharp/Numpy.NET
그런데 이놈은 Python.Included를 이용해 파이썬 설치가 없어도 된다고 하는데 결국은 Python을 이용하는 것으로 보인다.
Reshape 함수 테스트 ('NumpyDotNet' Nuget 설치)
using NumpyDotNet;
namespace ReshapeTest2
{
internal class Program
{
static void Main(string[] args)
{
// [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
var ndarray = np.arange(12);
// [[0, 1, 2, 3, 4, 5], [6, 7, 8, 9, 10, 11]]
var array2d = ndarray.reshape(2, 6);
// [[[0, 1, 2], [3, 4, 5]], [[6, 7, 8], [9, 10, 11]]]
var array3d = ndarray.reshape(2, 2, 3);
}
}
}
결과
결과를 보면 알겠지만 내부에 다른 속성들이 많이 있습니다.
이 속성들로도 활용할수 있는 것들이 많이 있을 것 같아 보입니다.
Debug 폴더를 가보니 Python 관련된 dll 이 없고 Python 이 설치되지도 않았습니다. Python.Included 가 어떤 원리 인지 궁금하네요
사용해 보니 두 패키지가 기존 파이썬 코드를 그대로 차용해서 사용할 수 있게 되어있었습니다.
기능도 동일하게 동작하는거 같습니다. (NumSharp 가 오래돼서 그런지 다운로드 수가 높긴 합니다.)
참고
https://github.com/henon/Python.Included
docker 환경 변수와 launchSettings.json 파일과 appsetting.json 파일의 관계 (0) | 2024.09.29 |
---|---|
zip 파일을 wav 로 변환하고 wav 파일을 다시 zip 파일로 변환하기 (0) | 2024.09.19 |
데이터를 동적 조건으로 쿼리하기 (0) | 2024.08.23 |
Naver 사이트 열어 특정 단어 검색하기 (0) | 2024.08.22 |
Quartz Scheduler misfire 처리하기 - 즉시 실행 방지 (0) | 2024.08.21 |