タグ

2021年5月30日のブックマーク (6件)

  • NumPy配列ndarrayを分割(split, array_split, hsplit, vsplit, dsplit) | note.nkmk.me

    NumPy配列ndarrayを分割(split, array_split, hsplit, vsplit, dsplit) NumPy配列ndarrayを分割するには以下の関数を使う。 numpy.split(): 等分割、または、任意の位置で分割 numpy.array_split(): できるだけ等分割で分割 numpy.vsplit(): 縦に分割 numpy.hsplit(): 横に分割 numpy.dsplit(): 深さ方向に分割 numpy.split()が基で、他は特定の目的のために簡単に使えるようにしたもの。numpy.split()の使い方を理解しておけば他も理解しやすい。 「縦に分割」「横に分割」という表現は曖昧だが、ここではNumPyの公式ドキュメントに則り、上下に分割することを縦に分割、左右に分割することを横に分割と表す。 最後に説明するように、分割された配列は

    NumPy配列ndarrayを分割(split, array_split, hsplit, vsplit, dsplit) | note.nkmk.me
  • NumPyで空の配列ndarrayを生成するemptyとempty_like | note.nkmk.me

    NumPyで初期化されていない空の配列ndarrayを生成する方法を説明する。 任意の形状shapeとデータ型dtypeを指定するnp.empty()と、既存の配列ndarrayと同じ形状・データ型の配列を生成するnp.empty_like()がある。 ここでの「空の配列」は「初期化されていない配列」の意味。確保されたメモリの値がそのまま読み込まれるので、生成される配列の要素の値は不定。np.empty()やnp.empty_like()で必要なサイズを確保し、その後で値を代入していく、という使い方になる。 要素数0の配列については最後に述べる。 全要素を0や1、任意の値で初期化して配列を生成する方法については以下の記事を参照。 関連記事: NumPy配列ndarrayを初期化(zeros, ones, fullなど) 記事のサンプルコードのNumPyのバージョンは以下の通り。バージョン

    NumPyで空の配列ndarrayを生成するemptyとempty_like | note.nkmk.me
  • numpy.ndarray.astype(numpy.uint8)の落とし穴【Python/Numpy】 – 開発記録

    float64やint32のndarrayをuint8に型変換した時に自動的に近い境界値に丸めてくれると思っていたのですがそうではないようです。 OpenCVで画像を読み込んでNumPyで弄った後に符号無し8ビット整数に変換して書き出そうとした時に躓いたのでメモ。 概要 元の型より精度が低い整数型への型変換numpy.ndarray.astype(dtype)は変換前にnumpy.ndarray.clip(min, max)をすべきです。 例えば、a.astype(np.uint8)する時は以下のようにa.clip(0, 255)で値を先に制限します。 >>> import numpy as np >>> a = np.array([-1, 0, 255, 256]) # こうではなくて >>> a.astype(np.uint8) array([255, 0, 255, 0], dtyp

  • Pythonで2次元配列の静的確保と動的確保 - sonickun.log

    Pythonデータ分析をするときにどうしても2次元配列を使いたかったのですが、Numpyを使った配列定義がわかりにくくて困っていたところ、友人にNumpyを使わない方法を教えてもらったので載せておきます。個人的にはこの方法が一番シンプルで好きです。 またこの方法なら、2次元以上の多次元配列も定義できます。 2次元配列の静的確保 ・悪い例 次のように配列を定義すると、要素を更新すると中身が変になります。 >>> arr = [[0]*3]*5 >>> arr [[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]] >>> >>> >>> arr[1][2] = 1 >>> arr [[0, 0, 1], [0, 0, 1], [0, 0, 1], [0, 0, 1], [0, 0, 1]] このように、1つの要素を書き換えたはずなのに

    Pythonで2次元配列の静的確保と動的確保 - sonickun.log
  • untitled

    otori334
    otori334 2021/05/30
    画像の圧縮
  • with構文とは何なのか - 年中アイス

    Pythonをやっていて、with構文って何だろ?となって、理解できたので整理してみます。細かいところが違うかもしれませんが、動きはつかめるかなと思います。 Python3.3で動作確認しています。 with構文とは with構文は、ある機能の利用者が、より安全、簡潔にその機能を使えるようにする構文です。既知の定形終了処理であれば、機能作成側でそれをあらかじめ定義し、利用者はwith構文を使うだけで、安全に機能を使うことが出来ます。 with構文を使っていないファイル書き込み例 wfp = open('msg.log', 'w') wfp.write('need call close, if do not use with statement.') wfp.close() with構文を使ったファイル書き込み例 with open('msg.log', 'w') as wfp: wfp.w

    with構文とは何なのか - 年中アイス