Python Real World Data Science [Digest 7]
5351 ワード
このシリーズは「Python Real World Data Science」の抜粋を更新し、毎週6日に更新します.
Pythonのデータ科学分野での応用を紹介し、4つのモジュールに分けられる. Pythonベース データ分析 データマイニング 機械学習 本文はシリーズ第7編でpythonの基礎を紹介する.
Chapter 7 Python Data Structures
クラスとオブジェクトの使用は、
1 Tuplesは、一定の長さのオブジェクトシーケンスを格納し、 を変更できません.作成 カンマ区切り 括弧 Unpack パッケージングストレージ転送、パケット解除 を使用
Slicing
欠点:メタグループのメンバーがアクセスして数字を使ってインデックスを行い、何をしているのか分かりやすく、コードの可読性が悪い 2 Named tuples はメタグループを命名し、順序付けされたオブジェクトシーケンスを格納し、各メンバーは名前 を有する.作成
アクセス 3 Dictionaries
オブジェクト間のマッピング関係(map)を格納し、値をすばやく検索
作成
Index を返す. 多くのタイプがkeyとして使用できますが、listはできません(リストは変更され、ハッシュはできません) 4 defaultdict
辞書を作成します.キー値ペアを挿入するたびに、キーが存在するかどうかを検出する必要があります.存在しない場合は、関数によってデフォルト値を作成します.
5 Counter
6 List
リストはPythonユーザーのスイスの軍刀で、通常は同じタイプのオブジェクトを何らかの順序で格納することを表すために使用されます.
リストの一般的な方法は次のとおりです.リストの末尾に要素 を追加する.リスト内のある位置に要素 を挿入する.ある要素が現れる頻度をカウントする .リスト内の要素の位置を見つける 逆転リスト は である.
上記のスキームに従って
7 Sets
uniqueのグループを表す要素で、集合の内外の世界を区別し、集合の要素はソートをサポートせず、通常は重み付けに使用できます.
作成 検索 並列 交差 対称差 ではない.差分セット サブセット 親セット 8 Extending built-ins
適切なメソッドを継承して書き換える
9 Queues
Pythonのデータ科学分野での応用を紹介し、4つのモジュールに分けられる.
Chapter 7 Python Data Structures
クラスとオブジェクトの使用は、
と
の両方を指定する必要がある場合にのみ考慮されます.1 Tuples
stock = "FB", 75.00, 75.03, 74.90
stock2 = ("FB", 75.00, 75.03, 74.90)
symbol, current, high, low = stock
stock[1:2]
from collections import namedtuple
# Stock , 4 ,symbol、current、high、low
Stock = namedtuple("Stock", "symbol current high low")
stock = Stock("FB", 75.00, high=75.03, low=74.90)
stock.high
オブジェクト間のマッピング関係(map)を格納し、値をすばやく検索
作成
dict()
, {}
stocks = {"GOOG": (613.30, 625.86, 610.50), "MSFT": (30.25, 30.70, 30.19)}`
Index
stocks["GOOG"]
print(stocks.get("RIM"))
None
stocks.get("RIM", "NOT FOUND")
'NOT FOUND`
setdefault()
このキー値が存在しない場合は作成してデフォルト値に設定、存在する場合は対応するvalue keys()
, values()
, items()
辞書を作成します.キー値ペアを挿入するたびに、キーが存在するかどうかを検出する必要があります.存在しない場合は、関数によってデフォルト値を作成します.
5 Counter
from collections import Counter
responses = [
"vanilla",
"chocolate",
"vanilla",
"vanilla",
"caramel",
"strawberry",
"vanilla"
]
print(
"The children voted for {} ice cream".format(
Counter(responses).most_common(1)[0][0]
)
)
6 List
リストはPythonユーザーのスイスの軍刀で、通常は同じタイプのオブジェクトを何らかの順序で格納することを表すために使用されます.
リストの一般的な方法は次のとおりです.
append
insert
count
index
,find
reverse
sort
、リスト内のオブジェクトについてはその定義__lt__
の方法に従って並べ替えられ、以下の例from functools import total_ordering
@total_ordering
class WeirdSortee:
def __init__(self, string, number, sort_num):
self.string = string
self.number = number
self.sort_num = sort_num
def __lt__(self, object):
if self.sort_num:
return self.number < object.number
return self.string < object.string
def __repr__(self):
return"{}:{}".format(self.string, self.number)
def __eq__(self, object):
return all((
self.string == object.string,
self.number == object.number,
self.sort_num == object.number
))
上記のスキームに従って
__lt__
を実装する方法に加えて、sort
関数のkey
パラメータを指定することがより一般的である.>>> from operator import itemgetter
>>> l = [('h', 4), ('n', 6), ('o', 5), ('p', 1), ('t', 3), ('y', 2)]
>>> l.sort(key=itemgetter(1))
>>> l
[('p', 1), ('y', 2), ('t', 3), ('h', 4), ('o', 5), ('n', 6)]
itemgetter
に加えて、attrgetter
およびmethodcaller
もよく用いられるkey
である.7 Sets
uniqueのグループを表す要素で、集合の内外の世界を区別し、集合の要素はソートをサポートせず、通常は重み付けに使用できます.
作成
set()
,{value1, value2}
演算in
union
intersection
symmetric_difference
はいずれかの集合であるが、同時に2つの集合difference
issubset
issuperset
適切なメソッドを継承して書き換える
>>> dir(list)
['__add__', '__class__', '__contains__', '__delattr__','__delitem__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort'
9 Queues