例: 12+5, 4-3, 2*4, 3/5, (3+2)*3
2*3
3/4
3-5
4*(5-3)
5**2
4+5*2
各自で入力してみよう
変数xに2、変数yに3を代入し、x/yを計算した結果をzに代入.
このように'='には右辺の値を左辺に代入するという意味がある
x=2
y=3
z=x/y
print関数を用いて、変数に代入した値を表示
print(z)
orangeに120, appleに150を代入
orange=120
apple=150
print(orange)
print("オレンジの値段は",orange,"円です。")
print("オレンジ2個とりんご4個の値段は",2*orange+4*apple,"円です。")
変数にテキストも代入できます。ただし、テキストは'か"で囲みます
name='石原'
month=3
day=27
print("私の名前は",name,"です。誕生日は",month,"月",day,"日です。")
%whoで使用している変数、%whosで使用している変数のタイプや値を確認
%who
%whos
intは整数型、floatは浮動小数点数型、strは文字列型
delを用いて使用している変数を削除
del orange
%who
%resetで全ての変数を削除(本当に削除するのか確認されます)
%reset
%who
Pythonには整形されたデータを効率的に扱うことを可能とする多くの機能とライブラリが用意されています.
リストは複数のデータの基本となるデータ構造です.
変数numsに複数の要素を持つリストを代入
nums=[1,2,3,4,4,5]
リストの要素の参照。先頭は0番、続いて1番、2番、、。末尾は-1で参照。
nums[0]
nums[-1]
2番から5番の手前(=4番)の要素までの参照
nums[2:5]
:で全てを参照
nums[:]
リストの操作:pythonのリストにはいくつかのメソッドが用意されている
appendは要素をリストの末尾に追加するメソッド
nums.append(8)
nums
指定した場所に要素を挿入
nums.insert(2,-4)
nums
指定した場所の要素を削除
nums.pop(2)
nums
nums.count(4)
1 in nums
6 in nums
nums.sort()
nums
リストの要素数
len(nums)
リストとリストの結合
num1=[1,2,3]
num2=[4,3,2]
num1+num2 #ベクトルの足し算のようにはならないことに注意
リストの繰り返し
num1*2 #ベクトルの定数倍のようにならないことに注意
リストのリスト
mat1=[[1,2],[3,4],[5,6]]
mat1[0]
→mat1の0番要素は[1,2]
mat2=[[1,2,3,4],[5,6,7,8],[9,10,11,12]]
mat2[1]
mat2[1][2]
mat2の1番要素[5,6,7,8]の2番要素は7
mat2[1][0:2]
NumpyはPythonのライブラリの一つで、インポートして使います..
リストのデータをNumpyの配列として扱うことで、整形された複数のデータを高速に扱うための便利なメソッドが使えるようになります.
import numpy as np
mat2=[[1,2,3,4],[5,6,7,8],[9,10,11,12]]
mat2をNumpyの配列に変換し、名前をamat2とします
amat2=np.array(mat2)
Numpyの配列では多くの便利なメソッドが使用可能になります。shapeはNumpy配列で使用可能になるメソッドの一つです
amat2.shape
→amat2の要素は3つあり、その各々が4つの要素をもつリスト
amat2
amat2の0番の要素の抽出
amat2[0]
amat2の各要素(=リスト)の0番の要素を抽出
amat2[:,0]
amat2の各要素(=リスト)の0番から2番の手前の要素までを抽出
amat2[:,0:2]
amat2の各要素(=リスト)の0番と2番の要素を抽出
amat2[:,(0,2)]
以上のような要素の抽出は普通のpythonのリストでは不可能。Numpyの配列の場合に可能
amat3=np.array([[[1,2,3],[4,5,6]],[[7,8,9],[10,11,12]]])
amat3
amat3.shape
→amat3の要素は2つあり、その各々が2つの要素をもち、さらにその各々が3つの要素をもつ
amat3の0番要素
amat3[0]
amat3の0番要素の1番要素
amat3[0,1]
amat3の1番要素の1番要素
amat3[1,1]
amat3の各要素の0番要素
amat3[:,0]
amat3の各要素の各要素の0番要素
amat3[:,:,0]
num1=[1,2,3]
num2=[2,3,2]
a_num1=np.array(num1)
a_num2=np.array(num2)
a_num1
a_num2
ベクトルの和
a_num1+a_num2
ベクトルのスカラー倍
a_num1*2
ベクトルとしての演算
a_num2-2*a_num1
ベクトルの内積
a_num1@a_num2
a_num1.dot(a_num2)
pandasをインポートすると外部の表データ(csvファイル)の読み込みが可能になります
エクセルなどの表計算ソフトで扱うような多様な配列データをPythonで扱うためのライブラリです。
Pandasで扱う多様なデータを高速に処理するための機能がNumpyで提供される、といった感じです。
import pandas as pd
dat0=pd.read_csv('/content/sazae.csv')
dat0
type(dat0) # →dat0はpandasの特有のデータフレームオブジェクトであることがわかります
pandasのデータフレームオブジェクトはindexとcolumnsとvaluesで構成されています
dat0.index
dat0.columns
dat0.values
Numpy配列に対するメソッドshapeと同様に、pandasのデータフレームオブジェクトに対してもshapeメソッドが使え、行数と列数の情報が得られます.
dat0.shape
headは最初の5行を表示するpandasのメソッド
dat0.head()
pandasのデータフレームを構成するvaluesはNumpyのオブジェクトです
dat0val=dat0.values
type(dat0val) # →dat0valはNumpyのオブジェクトとなっています
Numpyのメソッドshapeを用いて、データの形を調べます
dat0val.shape
'性別'データのみの取り出し. 以下の2つはどちらも同じ結果がyに代入される.
y=dat0.iloc[:,1].values
y=dat0.loc[:,'性別'].values
yのデータのタイプを確認します.→ Numpyの配列でることがわかります
type(y)
Numpyのメソッドshapeを用いてyのデータの形を確認します.→要素数が7のリストであることがわかります
y.shape
'名前'と'年齢'と'身長'の数字データの取り出し. 以下の2つはどちも同じ結果がXに代入される.
X=dat0.iloc[:,[0,2,3]].values
X=dat0.loc[:,['名前','年齢', '身長']].values
Xのデータのタイプを確認します.→ Numpyの配列でることがわかります
type(X)
Numpyのメソッドshapeを用いて Xのデータの形を確認します.
X.shape
→Xの要素数が7個であり,その各要素が3個の要素を持つリストであることがわかります
X
Xのデータのうち、'性別'が1であるデータのみ取り出してX1に代入します
X1=X[y==1]
X1
X1から'年齢'と'身長'に該当する第1要素と第2要素のみを取り出すには次のようにします
X1[:,[1,2]]
dat=pd.read_csv('/content/sazae.csv',index_col='名前')
dat
type(dat)
dat.columns
dat.index
dat.shape
dat.values
type(dat.values)
dat.columns[0]
'性別'データのみの取り出し
dat.loc[:,'性別'].values
dat.iloc[:,0].values
'年齢'と'身長'の数字データの取り出し. 以下の4つはどれも同じ結果が得られる.
上の3つはpandasのオブジェクトから列を抽出してからNumpyのオブジェクトに変換
4つ目はNumpyオブジェクトに変換してから列の抽出を行なっている
dat.iloc[:,[1,2]].values
dat.loc[:,['年齢', '身長']].values
dat[['年齢','身長']].values
dat.values[:,[1,2]]