11

MATLAB を置き換えるためにいくつかの Python ライブラリを使用したいと考えています。Python で Excel データをインポートして (たとえばNumPyを使用して)、それらを使用するにはどうすればよいですか?

Python が MATLAB の信頼できる代替手段であるかどうかはわかりませんが、試してみたいと思います。チュートリアルはありますか?

4

8 に答える 8

11

MATLABで実行している計算の種類(および使用しているツールボックス) によっては、Python が MATLAB の優れた代替手段になる可能性があります。

Python + NumPy + SciPy + Matplotlibは、開始するのに適した組み合わせです。

データについては、たとえば、データをテキスト ファイルに直接保存し (浮動小数点の精度の問題に直接関係していないと仮定して)、Pythonで読み取ることができます。

データがExcelデータで、各値が「;」で区切られている場合、たとえば、ファイルを 1 行ずつ読み取り、(「;」を引数として) split() メソッドを使用して各値を取得できます。

バージョン 7.1 までの MATLAB では、 scipy.io.matlab.mioモジュールを使用して Python から .mat ファイルを直接読み込むことができます。

于 2009-06-29T11:06:15.737 に答える
3

Python にテキスト データをインポートする方法は、おそらく数百通りあります。

しかし、 MATLABを置き換えたいので、NumPyとおそらくSciPyを使用することになります。

物事をシンプルに保ちます: NumPy の標準的なテキスト読み込みを使用します:

import numpy
imported_array = numpy.loadtxt('file.txt',delimiter='\t')  # Assuming tab-delimiter
print imported_array.shape
于 2009-07-23T18:30:04.407 に答える
2

一部のMATLAB開発者がPythonをより使いやすくするためのステップとして、 mlabwrapを調べました。

しかし、私はそれをきれいに構築することができず、ここで本番インストールを実行していないので、私は水中で死んでいます。

于 2009-06-29T15:55:29.317 に答える
2

プロット用のMatplotlibと、 Excelデータを読み取るためのcsv モジュールがあります ( CSVにダンプできると仮定します)。

MATLABを Pythonに置き換えるチュートリアルを次に示します。

于 2009-06-29T10:58:24.490 に答える
2

MATLABの世界から来た場合、 Pylabは移行を容易にします。データを ASCII に変換pylab.load()したら、残りの作業を行います。

pylab.load(fname, comments='#', delimiter=None, converters=None, 
           skiprows=0, usecols=None, unpack=False, 
           dtype=<type 'numpy.float64'>)
于 2009-06-29T11:22:04.707 に答える
1

「Python が MATLAB の信頼できる代替手段であるかどうかはわかりません」

私 (実験物理学) にとって、Python はMATLABの完全な代替手段であるだけでなく(上記のようにSciPyMatplotlibを含める場合)、データの処理と視覚化以外の多くのことにも役立ちます (一般的なプログラミングのニーズなど)。

「SAGEを試してみます。」

ノートブック環境を提供するSageを実行しているサーバーがいくつかあることは注目に値します ( http://www.sagemath.org/でSage をオンラインで試してください)。必要なのはインターネット ブラウザとアクセスだけ (インストールは不要) であることを考えると、これは非常に便利です。

Kevin Buchs によって解釈された質問については (別の回答で)、独自の Excel から Python への読み取りはいくつかの方法で行うことができ、一部はプラットフォーム (OS) に依存します。

  1. 素敵なリソース (プラットフォームに依存しない) - http://www.python-excel.org/
  2. かつて便利だと思ったxlrdを使用した例(これは私が必要なときに使用したものです):http://code.activestate.com/recipes/483742/ xlrdに基づく例(プラットフォームに依存しない)
  3. pyexceleratorは別のオプションです。

これが役立つことを願っています。そうでない場合は、サンプル コードを自分でアレンジしてみることができます (ただし、私が持っているコードは 6 年以上前のものです...)。個人的には、他の回答で提案されているように、CSV または ASCII 形式を使用することを好みます。

于 2012-03-21T13:12:26.370 に答える
1

データをMATLAB形式で保存した場合は、次を使用します。

from scipy.io import loadmat

datafile = "yourfile.mat"
data = loadmat(datafile, matlab_compatible=True)
var1 = data['nameOfYourVariable'].squeeze()
var2 = data['nameOfYourOtherVariable'].squeeze()
于 2010-10-26T18:56:15.633 に答える