Basic Operators

Published by:

基本オペレータ


この節ではPythonで基本的な演算子を使う方法を説明します。

算術演算子

他のプログラミング言語と同じように、加算、減算、乗算、除算の演算子を数値と共に使用できます。

number = 1 + 2 * 3 / 4.0
print(number)

答えがどうなるかを予測してみてください。Pythonは操作の順番に従いますか?

利用可能な別の演算子は、除算の整数剰余を返すモジュロ(%)演算子です。配当率%divisor =剰余。

remainder = 11 % 3
print(remainder)

2つの乗算記号を使用すると、べき乗の関係になります。

squared = 7 ** 2
cubed = 2 ** 3
print(squared)
print(cubed)

文字列で演算子を使用する

Pythonは、加算演算子を使った文字列の連結をサポートしています。

helloworld = “hello” + ” ” + “world”
print(helloworld)

Pythonは、文字列を繰り返して連続する文字列を形成することもサポートしています。

lotsofhellos = “hello” * 10
print(lotsofhellos)

リストでの演算子の使用

リストは加算演算子で結合することができます。

even_numbers = [2,4,6,8]
odd_numbers = [1,3,5,7]
all_numbers = odd_numbers + even_numbers
print(all_numbers)

文字列の場合と同様に、Pythonは乗算演算子を使用して繰り返しシーケンスで新しいリストを作成することをサポートします。

print([1,2,3] * 3)

演習課題

この課題の目標は、x_listand という2つのリストを作成することです。y_listこれらのリストには、それぞれ変数xandの10個のインスタンスが含まれていますy。あなたはとも呼ばれるリストを作成するために必要とされているbig_list変数が含まれ、xそしてyあなたが作成した二つのリストを連結して、10回ずつ。

x = object()
y = object()

# TODO: change this code
x_list = [x]
y_list = [y]
big_list = []

print("x_list contains %d objects" % len(x_list))
print("y_list contains %d objects" % len(y_list))
print("big_list contains %d objects" % len(big_list))

# testing code
if x_list.count(x) == 10 and y_list.count(y) == 10:
    print("Almost there...")
if big_list.count(x) == 10 and big_list.count(y) == 10:
    print("Great!")

 

Lists

Published by:

リスト


リストは配列と非常によく似ています。それらは任意のタイプの変数を含むことができ、それらはあなたが望むだけ多くの変数を含むことができます。リストは非常に簡単な方法で反復することもできます。これはリストを作成する方法の例です。

mylist = []
mylist.append(1)
mylist.append(2)
mylist.append(3)
print(mylist[0]) # prints 1
print(mylist[1]) # prints 2
print(mylist[2]) # prints 3

# prints out 1,2,3
for x in mylist:
    print(x)

 

存在しないインデックスにアクセスすると、例外(エラー)が発生します。

mylist = [1,2,3]
print(mylist[10])

 

課題

この課題では、 “append”リストメソッドを使って正しいリストに数字と文字列を追加する必要があります。「数」リストに数字1、2、および3を追加し、文字列変数に単語「hello」と「world」を追加する必要があります。

角かっこ演算子を使用して、変数second_nameに名前リストの2番目の名前を入力する必要もあります[]。インデックスは0から始まるので、リストの2番目の項目にアクセスする場合、そのインデックスは1になります。

参考

https://www.learnpython.org/en/Lists

Variables and Types

Published by:

変数と型


Pythonは完全にオブジェクト指向であり、「静的に型付け」されていません。使用する前に変数を宣言したり、型を宣言する必要はありません。Pythonのすべての変数はオブジェクトです。

このチュートリアルでは、いくつかの基本的な種類の変数について説明します。

数値

Pythonは2種類の数をサポートします – 整数と浮動小数点数。(これは複素数もサポートします。このチュートリアルでは説明しません)。

整数を定義するには、次の構文を使用します。

myint = 7
print(myint)

 

浮動小数点数を定義するには、次の表記法のいずれかを使用します。

myfloat = 7.0
print(myfloat)
myfloat = float(7)
print(myfloat)

 

文字列

文字列は、一重引用符または二重引用符で定義されます。

mystring = 'hello'
print(mystring)
mystring = "hello"
print(mystring)

 

この2つの違いは、二重引用符を使用するとアポストロフィを簡単に含めることができるという点です(これに対して、一重引用符を使用すると文字列が終了します)。

mystring = "Don't worry about apostrophes"
print(mystring)

 

代入は、このように同じ行にある「同時に」複数の変数に対して行うことができます。

a, b = 3, 4
print(a,b)

 

課題

この課題の目標は、文字列、整数、および浮動小数点数を作成することです。文字列には名前を付けmystring、 “hello”という単語を含める必要があります。浮動小数点数には名前を付けてmyfloat10.0の数を入れ、整数には名前を付けてmyint20の数を入れなければなりません。

参考

https://www.learnpython.org/en/Variables_and_Types

Python Hello, World!

Published by:

VS Code install

  1. ウェブページを開く
    https://code.visualstudio.com/ 
  2. Visual Studio Code」の「 ダウンロード」をクリック.※ Linux 版, Mac 版が欲しいときは「さらに詳しく」をクリック
  3. ダウンロードした .exeファイルを実行する.

Pythonスクリプトを書いてみる

  1. Documentsの下にPythonというフォルダを作る。
  2. VS Codeのメニューから「フォルダを開く」を選択し、1で作成したフォルダを指定する。
  3. 同じくメニューから「新規ファイル」を選択し、hello.pyなどのファイル名を付ける。拡張子から自動的にpythonスクリプトと認識される。
  4. VS Codeから、勧めExtensionsが表示され、好みでインストールする。
  5. 何か適当なコードを書く。
hello.py
if True:
    print('Hello world')
  1. VS Codeのターミナル(開いてなければメニューから「新規ターミナル」を開き)で実行する。
ターミナル
/Users/chen/Documents/C >  python hello.py
Hello world

これで最低限、pythonを快適に編集できるようになった。

 

Colab(2) Pip List

Published by:

Machine Learning に使うライブラリを確認するため、OSのコマンドラインに命令を送る。

!pip list

ずらずら出てきた。かなり長い。

Package                            Version    
---------------------------------- -----------
absl-py                            0.5.0      
altair                             2.2.2      
astor                              0.7.1      
backports-abc                      0.5        
backports.functools-lru-cache      1.5        
backports.shutil-get-terminal-size 1.0.0      
backports.weakref                  1.0.post1  
beautifulsoup4                     4.6.3      
bleach                             3.0.2      
cachetools                         2.1.0      
certifi                            2018.10.15 
chardet                            3.0.4      
configparser                       3.5.0      
crcmod                             1.7        
cycler                             0.10.0     
cymem                              2.0.2      
cytoolz                            0.9.0.1    
decorator                          4.3.0      
defusedxml                         0.5.0      
dill                               0.2.8.2    
entrypoints                        0.2.3      
enum34                             1.1.6      
funcsigs                           1.0.2      
functools32                        3.2.3.post2
future                             0.16.0     
futures                            3.2.0      
gast                               0.2.0      
google-api-core                    1.5.0      
google-api-python-client           1.6.7      
google-auth                        1.4.2      
google-auth-httplib2               0.0.3      
google-auth-oauthlib               0.2.0      
google-cloud-bigquery              1.1.0      
google-cloud-core                  0.28.1     
google-cloud-language              1.0.2      
google-cloud-storage               1.8.0      
google-cloud-translate             1.3.1      
google-colab                       0.0.1a1    
google-resumable-media             0.3.1      
googleapis-common-protos           1.5.3      
grpcio                             1.15.0     
h5py                               2.8.0      
httplib2                           0.11.3     
idna                               2.6        
ipykernel                          4.6.1      
ipython                            5.5.0      
ipython-genutils                   0.2.0      
Jinja2                             2.10       
joblib                             0.12.5     
jsonschema                         2.6.0      
jupyter-client                     5.2.3      
jupyter-core                       4.4.0      
Keras                              2.1.6      
Keras-Applications                 1.0.6      
Keras-Preprocessing                1.0.5      
Markdown                           3.0.1      
MarkupSafe                         1.0        
matplotlib                         2.1.2      
mistune                            0.8.4      
mock                               2.0.0      
mpmath                             1.0.0      
msgpack                            0.5.6      
msgpack-numpy                      0.4.3.2    
murmurhash                         1.0.1      
nbconvert                          5.4.0      
nbformat                           4.4.0      
networkx                           2.2        
nltk                               3.2.5      
notebook                           5.2.2      
numpy                              1.14.6     
oauth2client                       4.1.3      
oauthlib                           2.1.0      
olefile                            0.46       
opencv-python                      3.4.3.18   
pandas                             0.22.0     
pandas-gbq                         0.4.1      
pandocfilters                      1.4.2      
pathlib                            1.0.1      
pathlib2                           2.3.2      
patsy                              0.5.0      
pbr                                5.0.0      
pexpect                            4.6.0      
pickleshare                        0.7.5      
Pillow                             4.0.0      
pip                                18.1       
plac                               0.9.6      
plotly                             1.12.12    
portpicker                         1.2.0      
preshed                            2.0.1      
prompt-toolkit                     1.0.15     
protobuf                           3.6.1      
psutil                             5.4.7      
ptyprocess                         0.6.0      
pyasn1                             0.4.4      
pyasn1-modules                     0.2.2      
Pygments                           2.1.3      
pymc3                              3.5        
pyparsing                          2.2.2      
pystache                           0.5.4      
python-dateutil                    2.5.3      
pytz                               2018.5     
PyWavelets                         1.0.1      
PyYAML                             3.13       
pyzmq                              16.0.4     
regex                              2018.1.10  
requests                           2.18.4     
requests-oauthlib                  1.0.0      
rsa                                4.0        
scandir                            1.9.0      
scikit-image                       0.13.1     
scikit-learn                       0.19.2     
scipy                              0.19.1     
seaborn                            0.7.1      
setuptools                         40.4.3     
simplegeneric                      0.8.1      
singledispatch                     3.4.0.3    
six                                1.11.0     
spacy                              2.0.16     
statsmodels                        0.8.0      
subprocess32                       3.5.3      
sympy                              1.1.1      
tensorboard                        1.11.0     
tensorflow                         1.12.0rc1  
tensorflow-hub                     0.1.1      
termcolor                          1.1.0      
terminado                          0.8.1      
testpath                           0.4.2      
Theano                             1.0.3      
thinc                              6.12.0     
toolz                              0.9.0      
tornado                            4.5.3      
tqdm                               4.27.0     
traitlets                          4.3.2      
typing                             3.6.6      
ujson                              1.35       
uritemplate                        3.0.0      
urllib3                            1.22       
vega-datasets                      0.5.0      
wcwidth                            0.1.7      
webencodings                       0.5.1      
Werkzeug                           0.14.1     
wheel                              0.32.1     
wrapt                              1.10.11    
xgboost                            0.7.post4  

Blue Book の機械学習のRaspberry Piの環境と比べると、ほぼ同じといえる。

こちらでBlue Book の機械学習をやってみる。

カラー図解 Raspberry Piではじめる機械学習 基礎からディープラーニングまで (ブルーバックス)

新品価格
¥1,760から
(2020/7/17 13:56時点)

Colab(3) use OpenCV

Published by:

「参考1」のコードはほぼ同じでできた。

コード

下記のコードをGoogle Colaboratoryにコピペ、lena_std.tifのファイルは別途用意する。

%matplotlib inline
import cv2 # opencvのインポート
import matplotlib.pyplot as plt # matplotlib(描画用)

print(cv2.__version__)


from google.colab import files #
f = files.upload() #ファイルアップロード


img=cv2.imread("./lena_std.tif")

show_img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
plt.imshow(show_img) #表示

lena_std.tifというファイルをアップロードして、imreadで読み込んで、plt.imshowで表示する。
(表示の前に、BGRをRGBに変換)。

参考

  1. https://qiita.com/kouki_outstand/items/ec1024cf0517f686ed7b

 

Colab(1) Getting start

Published by:

Google ColaboratoryはGoogleが機械学習の教育や研究用に提供しているツールである、Jupyter Notebook環境が無償で!使うことができる。

Google Colaboratoryとは

Colaboratory は、完全にクラウドで実行される Jupyter ノートブック環境です。設定不要で、無料でご利用になれます。Colaboratory を使用すると、コードの記述と実行、解析の保存や共有、強力なコンピューティング リソースへのアクセスなどをブラウザからすべて無料で行えます。

Google Colaboratoryの起動

Google Colaboratoryにブラウザでアクセスするだけ

リソースの確認

ノートブックを新規作成 > PYTHON 2の新しいノートブック または, PYTHON 3の新しいノートブック を選択

“!”をつけることで、Linuxのコマンドを実行することができます。
コードセルを追加し

!cat /proc/cpuinfo

長い出力を確認してください。

仮想マシンタイプスペック

Google Colaboratoryの仮想マシンタイプスペックの例:

  • n1-highmem-2 instance
  • Ubuntu 18.04
  • 2vCPU @ 2.2GHz
  • 13GB RAM
  • (GPUなし/ TPU)40GB, (GPUあり)360GB Storage
  • GPU NVIDIA Tesla K80 12GB
  • アイドル状態が90分続くと停止
  • 連続使用は最大12時間
  • Notebookサイズは最大20MB

複数のマシンのブラウザから開けるので、ペア・プログラミングが便利かも。

 

Coding at Mac OSX

Published by:

Mac OSX のローカル環境でApache, MySQL, PHP 環境が試したくなり、VMなどいろいろ便利なパッケージがありそうだが、一番基本な方法で揃いたい。

Apache

ApacheもMacOS X 内蔵されたので、そのまま利用
$ # Stop
$ sudo apachectl start
$ # Start
$ sudo apachectl start
Apacheの動作確認
sh-3.2# httpd -v
Server version: Apache/2.4.16 (Unix)
Server built:   Aug 22 2015 16:51:57
 ブラウザで下記のURLで動作確認。

http://localhost/

Web Rootは /Library/WebServer/Documents/ にある。

PHP

php有効にする

PHPもMacOS X 内蔵されたので、そのまま利用。
まず、httpd.conf に phpモジュール行のコメントを外す
# LoadModule php5_module libexec/apache2/libphp5.so
$ sudo vi /private/etc/apache2/httpd.conf
それからApacheを再起動
$ sudo apachectl restart

なう、/privateは隠しフォルダのため、Finderで探して修正する場合、以下のキーを同時に押下し、隠しフォルダ・隠しファイルが表示するように。

[command] + [shift] + [.(ドット)]

上記のショートカットキーで表示・非表示を切り替えられる。

info.phpでphp動作確認

Filename: info.php


<?php

// Show all information, defaults to INFO_ALL
phpinfo();

?>
 ブラウザで下記のURLで動作確認。
http://localhost/info.php

 

MySQL

MySQL のインストール方法は複数あり、ここではbrew でインストールと本家からダウンロード してインストール方法を紹介

brew でインストール

OSXにHomebrewをインストールする

$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

ローカルの環境(Mac)に MySQL をインストール

$ brew install mysql

MySQLを起動する

$ mysql.server start

Starting MySQL
. SUCCESS!

ダウンロードしてインストール

MySQLはMacOS Xにないので、本家からダウンロード
ダウンロードしたファイルをインストールする。

WordPressインストール

wp-cli install

$ curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 4487k 100 4487k 0 0 956k 0 0:00:04 0:00:04 –:–:– 911k

$ chmod +x wp-cli.phar

$ mv wp-cli.phar /usr/local/bin/wp

$ wp –info
OS: Darwin 17.7.0 Darwin Kernel Version 17.7.0: Thu Jun 21 22:53:14 PDT 2018; root:xnu-4570.71.2~1/RELEASE_X86_64 x86_64
Shell: /bin/bash
PHP binary: /usr/bin/php
PHP version: 7.1.16
php.ini used:
WP-CLI root dir: phar://wp-cli.phar
WP-CLI vendor dir: phar://wp-cli.phar/vendor
WP_CLI phar path: /Users/chen
WP-CLI packages dir:
WP-CLI global config:
WP-CLI project config:
WP-CLI version: 1.5.1

WordPressインストール

sh-3.2# cd /Library/WebServer/Documents
sh-3.2# wp core download –locale=ja –path=wordpress –allow-root
Creating directory ‘/Library/WebServer/Documents/wordpress/’.
Downloading WordPress 4.9.7 (ja)…
md5 hash verified: b4aea3d0f3353ff1bb5ccdb246732574
Success: WordPress downloaded.
sh-3.2#
設定ファイル生成

sh-3.2# wp core config –dbname=wp_test –dbuser=root –dbpass= –dbhost=localhost –allow-root –path=wordpress

Success: Generated ‘wp-config.php’ file.

データベース作成

sh-3.2# mysqladmin -u root create wp_test
sh-3.2#

WordPressセットアップ

http://localhost/wordpress/

 

参考資料

Dreamhost Hosting

Published by:

DreamHostには、One-Click-Installsという機能があり、WordPressとMySQLを10分程度で簡単にインストールすることができる。

1)サイト追加

新しいサイトにWordPressインストールするなら、まずサイトを追加する。

管理画面から「Manage Domains」を開き、「Add Hosting to a Domain / Sub-Domain」をクリックして追加する。ドメイン名など適切なパラメータを設置し、「Fully host this domain」でサイト作成。

2)「One-Clock Installs」選択

「One-Clock Installs」ページで「WordPress」を選ぶ。

3)インストール先のサイト選択

先ほど追加したサイトのドメイン名を選ぶ、インストールパス、DB名はそのままでも良い。「Install it for me now!」をクリック。インストール結果メール待ち。

4)パスワード再設定

インストール結果メールには、パスワードリセットするリンクがついてるので、クリックしてパスワード再設定する。

5)サイトにログイン

メールアドレスと再設定したパスワードでサイトにログイン。

 

TinyWebDB log with Graph

Published by:

TinyWebDBに、センサーデータ収集ログを解析して、画像にした!

表示したのでは、温度(最高、最低)、気圧、バッテリー電圧。

縦方向2軸しかできないから、バッテリーの電圧がみつらい。