Slide 10
Slide 10 text
SciSharpとPythonのコード比較
2021/9/11 SLIDO.COM #582 362
- Pythonに似た書き方ができる.
- 古い.NET だと動かないので注意. ( >= .NET Standard 2.0 (= .NET Framework 4.6.1) )
VB.NET (Numpy.NET)
Numpy.NETと比較してみた (最小二乗法)
Numpy.NET : Python Numpyのラッパー ライブラリ
NumSharp : 100% C# で実装された Numpy (しかしNumSharpには linalg.lstsqの実装がなかった)
import numpy as np
x = np.arange(0, 10, 0.1)
y = 3 * np.sin(x) + np.random.normal(-1, 1, len(x))
a = np.zeros((len(x), 2))
a[:,0] = np.sin(x)
a[:,1] = 1
p, res, rank, s = np.linalg.lstsq(a, y)
print(f'y = {p[0]} * sin(x) + {p[1]}')
実行速度(10000回実行時, 10回平均) : Numpy.NET 2.1 秒, Python 0.5秒
Imports Numpy
Dim x = np.arange(0, 10, 0.1)
Dim y = 3 * np.sin(x) + np.random.normal(-1, 1, x.len)
Dim a = np.zeros({x.len, 2})
a(":,0") = np.sin(x)
a(":,1") = 1
Dim p = np.linalg.lstsq(a, y).Item1
Console.WriteLine($"y = {p(0)} * sin(x) + {p[1]}")
Python (Numpy)
10