【Python】 リストから一つおきにデータを取り出す
書籍”Effective Python”項目6のメモです。Pythonを始めて半年経ちますが、真面目に言語自体の勉強をしていなかったので空き時間使ってまだ知らなかった事のメモをします。
サンプリングレートが高すぎるセンサのデータ数を減らしたいことがあったので、このような時に使えそうです。
a = [1,2,3,4,5,6,7,8,9,10] # b = [1,3,5,7,9] b = a[::2]
Effective Python ―Pythonプログラムを改良する59項目
- 作者: Brett Slatkin,石本敦夫,黒川利明
- 出版社/メーカー: オライリージャパン
- 発売日: 2016/01/23
- メディア: 大型本
- この商品を含むブログ (5件) を見る
【Python】 リストのコピー方法
書籍”Effective Python”項目5のメモです。Pythonを始めて半年経ちますが、真面目に言語自体の勉強をしていなかったので空き時間使ってまだ知らなかった事のメモをします。
リストのスライスの時に添え字startとendを省略するとコピーになる。
a = [1, 2, 3, 4] # これだと参照。aを変更するとbも変更される b = a # これだとコピー。bはaの変更の影響を受けない b = a[:]
Effective Python ―Pythonプログラムを改良する59項目
- 作者: Brett Slatkin,石本敦夫,黒川利明
- 出版社/メーカー: オライリージャパン
- 発売日: 2016/01/23
- メディア: 大型本
- この商品を含むブログ (5件) を見る
【Python】 PEP8スタイルガイドに従う
書籍”Effective Python”項目2のメモです。Pythonを始めて半年経ちますが、真面目に言語自体の勉強をしていなかったので空き時間使ってまだ知らなかった事のメモをします。
名前付けの規約
関数、変数、属性 ⇒ lowercase_underscore
protected属性 ⇒ _leading_underscore
private属性 ⇒ __double_underscore
クラス、例外 ⇒ CapitalizedWord
モジュールレベルの定数 ⇒ ALL_CAPS
式と文の規約
- インポートの順番は、標準ライブラリモジュール、サードパーティーのモジュール、自分のモジュールの順番に行う。各モジュールはアルファベット順にインポートする
Effective Python ―Pythonプログラムを改良する59項目
- 作者: Brett Slatkin,石本敦夫,黒川利明
- 出版社/メーカー: オライリージャパン
- 発売日: 2016/01/23
- メディア: 大型本
- この商品を含むブログ (5件) を見る
【WPF】 OxyPlotでグラフを描画する簡単な例
WPFでグラフを描きたい時はOxyPlotを利用しているのですが、頻繁に使うわけでもないため、使う度に同じことを調べる事態になってしまっています。そのため、OxyPlotの使い方に関する単純な例をメモしておきます。
1. NuGetからOxyPlot.Wpfをインストールする
2. (XAML)Windowにoxyを追加する & GridにPlotを追加する
<Window x:Class="Test.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:Test" mc:Ignorable="d" xmlns:oxy="http://oxyplot.org/wpf" Title="MainWindow" Height="350" Width="525"> <Grid> <oxy:Plot Name="PlotExample" Title="Example"> <oxy:Plot.Series> <oxy:LineSeries/> </oxy:Plot.Series> </oxy:Plot> </Grid> </Window>
3. Axisを定義し、データをセットする
// これらのusingが必要 using OxyPlot; using OxyPlot.Wpf; // X軸の定義 LinearAxis xAxis = new LinearAxis { Position = OxyPlot.Axes.AxisPosition.Bottom, Title = "x", Unit = "x unit" }; PlotExample.Axes.Add(xAxis); // Y軸の定義 LinearAxis yAxis = new LinearAxis { Position = OxyPlot.Axes.AxisPosition.Left, Title = "y", Unit = "y unit" }; PlotExample.Axes.Add(yAxis); // ItemsSourceにデータをセットする var points = new List<DataPoint>() { new DataPoint(0.0, 1.0), new DataPoint(1.0, 2.0), new DataPoint(2.0, 3.0) }; PlotExample.Series[0].ItemsSource = points; // Plotを更新する PlotExample.InvalidatePlot();
【C#】 C#からDOSコマンドでPythonスクリプトを呼び出す
C#からPythonを呼び出す方法はいくつかあるようで、IronPythonを利用する方法がまずヒットしたのですが、IronPythonではサポートされていないライブラリを利用したスクリプトを呼び出したいと考えています。そのため、こちら(DOSコマンドを実行し出力データを取得する: .NET Tips: C#, VB.NET)の方法を利用してみることにしました。
// プロセスクラスのインスタンス化 var p = new Process(); // cmd.exeのパスを取得 p.StartInfo.FileName = System.Environment.GetEnvironmentVariable("ComSpec"); // 出力を読み取れるようにする p.StartInfo.UseShellExecute = false; p.StartInfo.RedirectStandardOutput = true; p.StartInfo.RedirectStandardInput = false; // ウインドウを表示しないようにする p.StartInfo.CreateNoWindow = true; // hello.pyを実行する(ファイルにはprint('Hello')と書かれている) p.StartInfo.Arguments = @"/c python hello.py"; // 起動 p.Start(); // 出力を読み取る string result = p.StandardOutput.ReadToEnd(); // プロセス終了まで待機する p.WaitForExit(); p.Close(); // コンソールにHelloと表示される Console.WriteLine(result);