pythonにおけるリストメタグループ辞書セットの違い
31261 ワード
リストメタグループ辞書セットの違いはpython面接で最もよく見られる問題です.この問題は基礎的ですが、面接者の基礎レベルを反映しているのは確かです.
(1)リスト
リストとは?リストは私たちが日常生活でよく見かけるリストだと思います.例えば、過去1週間に私たちが買ったものを統計して、これらのものをリストにします.私たちは1つのものを1回以上買う可能性があるので、リストには重複項目が許可されています.もし私たちがリストの範囲を拡大して、私たちの過去1週間のすべての費用状況を統計すれば、これもリストですが、このリストには買い物が費用であり、水道代も費用であり、これらのタイプは異なることができます.pythonのリストはリストと同じで、繰り返し可能で、タイプが異なるのが特徴です.タイプが違うのも配列の最も本質的な違いです.pythonのリストは[]で表されます.
lst = ['arwen',123] print lst[0] print lst[1]
lst[0] = 'weiwen'
リストにアイテムを追加するには、appendとextendの2つの方法があります.appendは
次のようになります.
(2)タプル
メタグループとリストは構造的に何の違いもありません.唯一の違いは、メタグループが読み取り専用で、変更できないことです.メタグループは「()」で表され、次のようになります.
tup = ('arwen',123) print tup[0] print tup[1]
(3)集合は我々数学学の集合であり,特別な定義はない.集合の最良の応用は重み付けである.コレクションには特別な表現方法はありません.set関数を使用して、次のようなコレクションに変換されます.
lst = [ 1, 1, 0]
lst_set = set( lst ) #lst_setは1,0
tup = (2, 2, 1)
tup_set = set( tup) # tup_setは2,1
for item in lst_set:
print item
(4)最後は辞書です.ディクショナリには、次のようなキー値ペアのデータが格納されます.
1:a,2:b,3:c
辞書の一番外側は括弧で、各グループはコロンでつながっていて、各グループはカンマで区切られています.
辞書の最大の価値は、クエリー、キー、値の検索です.
numpyにカプセル化されたarrayは強力な機能を持ち、同じデータ型が格納されています
Numpy matricesは2次元でなければならないがnumpy arrays(ndarrays)は多次元(1 D,2 D,3 D・・・ND)であってもよい.MatrixはArrayの小さな分岐であり、Arrayに含まれる.だからmatrixはarrayのすべての特性を持っています.
numpyにおけるmatrixの主な利点は,比較的簡単な乗算シンボルである.例えば、aとbは2つのmatricesであり、a*bはマトリクス積である.
matrixおよびarrayは、objectsの後に
逆にnumpyではarraysが要素ごとの演算に従うため、array:cとdのc*d演算はmatlabのc.*d演算に相当する.
マトリクスを乗算するにはnumpyのdotコマンドが必要です.
aはmatrixであるため,a**2はa*aを返し,行列乗算に相当する.cはarrayで、c**2は、c中の要素が1つずつ平方を求めることに相当します.
問題が出てきました.もしプログラムの中にmatrixもarrayもあれば、頭が大きくなります.しかしarrayだけを使うと、matrixのすべての機能を実現するだけでなく、プログラミングや読書の面倒を減らすことができます.
もちろん、
私にとってnumpyのarrayとnumpyのmatrix,matlabのmatrixの最大の違いは,帰約演算を行うとarrayの次元数が変化するが,matrixは常に2次元に保たれることである.例えば以下に平均値を求める演算
arrayにとって
(1)リスト
リストとは?リストは私たちが日常生活でよく見かけるリストだと思います.例えば、過去1週間に私たちが買ったものを統計して、これらのものをリストにします.私たちは1つのものを1回以上買う可能性があるので、リストには重複項目が許可されています.もし私たちがリストの範囲を拡大して、私たちの過去1週間のすべての費用状況を統計すれば、これもリストですが、このリストには買い物が費用であり、水道代も費用であり、これらのタイプは異なることができます.pythonのリストはリストと同じで、繰り返し可能で、タイプが異なるのが特徴です.タイプが違うのも配列の最も本質的な違いです.pythonのリストは[]で表されます.
lst = ['arwen',123] print lst[0] print lst[1]
lst[0] = 'weiwen'
リストにアイテムを追加するには、appendとextendの2つの方法があります.appendは
次のようになります.
(2)タプル
メタグループとリストは構造的に何の違いもありません.唯一の違いは、メタグループが読み取り専用で、変更できないことです.メタグループは「()」で表され、次のようになります.
tup = ('arwen',123) print tup[0] print tup[1]
(3)集合は我々数学学の集合であり,特別な定義はない.集合の最良の応用は重み付けである.コレクションには特別な表現方法はありません.set関数を使用して、次のようなコレクションに変換されます.
lst = [ 1, 1, 0]
lst_set = set( lst ) #lst_setは1,0
tup = (2, 2, 1)
tup_set = set( tup) # tup_setは2,1
for item in lst_set:
print item
(4)最後は辞書です.ディクショナリには、次のようなキー値ペアのデータが格納されます.
1:a,2:b,3:c
辞書の一番外側は括弧で、各グループはコロンでつながっていて、各グループはカンマで区切られています.
辞書の最大の価値は、クエリー、キー、値の検索です.
numpyにカプセル化されたarrayは強力な機能を持ち、同じデータ型が格納されています
Numpy matricesは2次元でなければならないがnumpy arrays(ndarrays)は多次元(1 D,2 D,3 D・・・ND)であってもよい.MatrixはArrayの小さな分岐であり、Arrayに含まれる.だからmatrixはarrayのすべての特性を持っています.
numpyにおけるmatrixの主な利点は,比較的簡単な乗算シンボルである.例えば、aとbは2つのmatricesであり、a*bはマトリクス積である.
import numpy as np
a=np.mat('4 3; 2 1')
b=np.mat('1 2; 3 4')
print(a)
# [[4 3]
# [2 1]]
print(b)
# [[1 2]
# [3 4]]
print(a*b)
# [[13 20]
# [ 5 8]]
matrixおよびarrayは、objectsの後に
.T
を加えることによって、その回転を得ることができる.しかしmatrix objectsは、後に.H
fを加えて共役行列を得ることもでき、.I
を加えて逆行列を得ることもできる.逆にnumpyではarraysが要素ごとの演算に従うため、array:cとdのc*d演算はmatlabのc.*d演算に相当する.
c=np.array([[4, 3], [2, 1]])
d=np.array([[1, 2], [3, 4]])
print(c*d)
# [[4 6]
# [6 4]]
マトリクスを乗算するにはnumpyのdotコマンドが必要です.
print(np.dot(c,d))
# [[13 20]
# [ 5 8]]
**
演算子の役割も異なります.print(a**2)
# [[22 15]
# [10 7]]
print(c**2)
# [[16 9]
# [ 4 1]]
aはmatrixであるため,a**2はa*aを返し,行列乗算に相当する.cはarrayで、c**2は、c中の要素が1つずつ平方を求めることに相当します.
問題が出てきました.もしプログラムの中にmatrixもarrayもあれば、頭が大きくなります.しかしarrayだけを使うと、matrixのすべての機能を実現するだけでなく、プログラミングや読書の面倒を減らすことができます.
もちろん、
np.asmatrix
とnp.asarray
の2つのコマンドで簡単に変換できます.私にとってnumpyのarrayとnumpyのmatrix,matlabのmatrixの最大の違いは,帰約演算を行うとarrayの次元数が変化するが,matrixは常に2次元に保たれることである.例えば以下に平均値を求める演算
>>> m = np.mat([[1,2],[2,3]])
>>> m
matrix([[1, 2],
[2, 3]])
>>> mm = m.mean(1)
>>> mm
matrix([[ 1.5],
[ 2.5]])
>>> mm.shape
(2, 1)
>>> m - mm
matrix([[-0.5, 0.5],
[-0.5, 0.5]])
arrayにとって
>>> a = np.array([[1,2],[2,3]])
>>> a
array([[1, 2],
[2, 3]])
>>> am = a.mean(1)
>>> am.shape
(2,)
>>> am
array([ 1.5, 2.5])
>>> a - am #wrong
array([[-0.5, -0.5],
[ 0.5, 0.5]])
>>> a - am[:, np.newaxis] #right
array([[-0.5, 0.5],
[-0.5, 0.5]])