[[FrontPage/Python]] ** 高速化 [#wf1bde7e] Numpyから最高のパフォーマンスを得る http://kaisk.hatenadiary.com/entry/2015/02/19/224531 **ndarray一次元化 [#af30680b] >配列のflattenとravelメソッドは、1次元ベクトルへと形を変更します(flattened array)。 前者のメソッドは必ずコピーを返しますが、後者は必要なときだけコピーを返します(ですから特に大きな配列の場合後者がとても速いです)。 d = a.flatten(); id(d) == aid # False e = a.ravel(); id(e) == aid # True **Pythonでディレクトリの上層にあるモジュールをimportするときの注意点 [#n6cd9bb9] http://d.hatena.ne.jp/chlere/20110618/1308369842 ** logging [#w4014503] # ************************************************************* # # ロガー # ************************************************************* # import logging, logging.handlers logger = logging.getLogger(__name__) FORMAT = '%(asctime)-15s %(levelname)-8s %(lineno)-5s %(message)-s' formatter = logging.Formatter(FORMAT) # コンソールハンドラー console_handler = logging.StreamHandler() console_handler.setLevel(logging.DEBUG) console_handler.setFormatter(formatter) # ハンドラを追加 logger.addHandler(console_handler) # ファイルハンドラー file_handler = logging.handlers.RotatingFileHandler(filename="warning.log", mode="a", maxBytes=10*1000, backupCount=3) file_handler.setLevel(logging.WARNING) file_handler.setFormatter(formatter) # ハンドラを追加 logger.addHandler(file_handler) # ファイルハンドラー file_handler = logging.handlers.RotatingFileHandler(filename="debug.log", mode="a", maxBytes=10*1000, backupCount=3) file_handler.setLevel(logging.DEBUG) file_handler.setFormatter(formatter) # ハンドラを追加 logger.addHandler(file_handler) # ログテスト logger.debug("Looks like rain") logger.info("And hail") logger.warn("Did I hear thunder?") logger.error("Was that lightning?") logger.critical("Stop fencing and get inside!")