|
|
金子邦彦研究室: データベース、人工知能(AI)、データサイエンスの融合により不可能を可能にする |
【このページの目次】
Ubuntu で OS のシステム更新を行うときは, 端末で,次のコマンドを実行.
sudo apt update sudo apt -yV upgrade sudo /sbin/shutdown -r now
インストールするには, 端末で,次のコマンドを実行.
sudo apt -y install python3-dev python3-pip python3-setuptools python3-venv
インストールするには, 端末で,次のコマンドを実行.
sudo pip3 uninstall ptyprocess sniffio terminado tornado jupyterlab jupyter jupyter-console jupytext nteract_on_jupyter spyder sudo apt -y install jupyter jupyter-qtconsole spyder3 sudo apt -y install python3-ptyprocess python3-sniffio python3-terminado python3-tornado sudo pip3 install -U jupyterlab nteract_on_jupyter
行列の積, 主成分分析, SVD, k-Means クラスタリングを実行し,性能を確認する.
次のPython プログラムを動かす.
※ Python プログラムを動かすために, Ubuntu では「python3」コマンドを使う. あるいは, PyCharmなどにある Python コンソールも便利である.
import time import numpy import numpy.linalg import sklearn.decomposition import sklearn.cluster X = numpy.random.rand(2000, 2000) Y = numpy.random.rand(2000, 2000) # 行列の積 a = time.time(); Z = numpy.dot(X, Y); print(time.time() - a) # 主成分分析 pca = sklearn.decomposition.PCA(n_components = 2) a = time.time(); pca.fit(X); X_pca = pca.transform(X); print(time.time() - a) # SVD a = time.time(); U, S, V = numpy.linalg.svd(X); print(time.time() - a) # k-means a = time.time(); kmeans_model = sklearn.cluster.KMeans(n_clusters=10, random_state=10).fit(X) labels = kmeans_model.labels_ print(time.time() - a)
実行結果の例
sudo pip install -U virtualenv virtualenv-wrapper sudo pip3 install -U virtualenv virtualenv-wrapper echo -e "\n# virtualenv and virtualenv-wrapper" >> ~/.profile echo "export WORKON_HOME=$HOME/.virtualenvs" >> ~/.profile echo "export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3" >> ~/.profile echo "source /usr/local/bin/virtualenv-wrapper.sh" >> ~/.profile source ~/.profile
エラーメッセージが出ていないことを確認
export WORKON_HOME=$HOME/.virtualenvs export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3 source /usr/local/bin/virtualenv-wrapper.sh touch ~/.profile echo -e "\n# virtualenv and virtualenv-wrapper" >> ~/.profile echo "export WORKON_HOME=$HOME/.virtualenvs" >> ~/.profile echo "export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3" >> ~/.profile echo "source /usr/local/bin/virtualenv-wrapper.sh" >> ~/.profile source ~/.profile
virtualenv-wrapper の使い方
which python3 python3 --version
Ubuntu 18.04 での実行結果の例
名前: py36
使用する Python: python3
source /usr/local/bin/virtualenv-wrapper.sh mkvirtualenv --python=/usr/bin/python3 py36
lsvirtualenv
「py36」という新しい Python 環境が作成されたことが分かる
新しく端末を開き、次のコマンドを実行.
「workon py36」は、py36 の Python 環境の使用を開始するためのコマンド. エラーメッセージが出なければ OK.
source /usr/local/bin/virtualenv-wrapper.sh workon py36 which python which pip
source /usr/local/bin/virtualenv-wrapper.sh workon py36 python print(1 + 2) exit()
Ubuntu 18.04 での実行結果の例
source /usr/local/bin/virtualenv-wrapper.sh mkvirtualenv --python=/usr/bin/python py27
lsvirtualenv
「py27」という新しい Python 環境が作成されたことが分かる
新しく端末を開き、次のコマンドを実行.
「workon py27」は、py27 の Python 環境の使用を開始するためのコマンド. エラーメッセージが出なければ OK.
source /usr/local/bin/virtualenv-wrapper.sh workon py27 which python which pip
source /usr/local/bin/virtualenv-wrapper.sh workon py27 python print(1 + 2) exit()
ls ~/.virtualenvs
source /usr/local/bin/virtualenv-wrapper.sh workon py36 which pip which easy_install
source /usr/local/bin/virtualenv-wrapper.sh workon py27 which pip which easy_install
source /usr/local/bin/virtualenv-wrapper.sh workon py36 pip list
source /usr/local/bin/virtualenv-wrapper.sh workon py27 pip list
https://github.com/spyder-ide/spyder に記載の手順に従う
※ 隔離された Python 仮想環境を有効化したいときに限る
source /usr/local/bin/virtualenv-wrapper.sh workon ai
sudo pip3 install -U PyQT5 sudo pip3 install -U git+https://github.com/spyder-ide/spyder-kernels sudo pip3 install -U git+https://github.com/spyder-ide/qtpy cd /tmp sudo git clone https://github.com/spyder-ide/spyder.git cd spyder git pull python bootstrap.py sudo python3 setup.py install
「spyder3」で、試しに起動してみる.
sudo apt -y install swig
http://www.swig.org/Doc1.3/Python.html#Python_nn6 に記載のサンプルプログラム
%module example
%{
#define SWIG_FILE_WITH_INIT
#include "example.h"
%}
int fact(int n);
#include "example.h"
int fact(int n) {
if (n < 0){ /* This should probably return an error, but this is simpler */
return 0;
}
if (n == 0) {
return 1;
}
else {
/* testing for overflow would be a good idea here */
return n * fact(n-1);
}
}
int fact(int n);
#!/usr/bin/env python
"""
setup.py file for SWIG example
"""
from distutils.core import setup, Extension
example_module = Extension('_example',
sources=['example_wrap.c', 'example.c'],
)
setup (name = 'example',
version = '0.1',
author = "SWIG Docs",
description = """Simple swig example from docs""",
ext_modules = [example_module],
py_modules = ["example"],
)
端末で次のように操作
source /usr/local/bin/virtualenv-wrapper.sh workon py36 swig -python example.i sudo python3 setup.py build_ext --inplace ls -la example.* build
import example example.fact(4) exit()