numpyのarrayとasarrayの違いと使いどころ[自分用メモ]

前置き

題名の通り、自分用メモ。 他のブログ記事などは、reference等を適当にまとめてるだけな印象。 結局何なのか曖昧だったので現状の理解をざっくりまとめる。

arrayとasarrayの共通点

引数にndarray以外の配列が来たら、ndarrayを返す。引数と戻り値は別物。

つまり

import numpy as np

a = [0,1,2]

b = np.array(a)
c = np.asarray(a)

a[0] = 100

print(a)
print(b)
print(c)

出力結果

[100, 1, 2]
[0 1 2]
[0 1 2]

arrayとasarrayの相違点

引数がndarrayの時、arrayなら新しいndarrayを返し、asarrayなら参照オブジェクトを返す。

つまり

import numpy as np

a = np.array([0,1,2])

b = np.array(a)
c = np.asarray(a)

a[0] = 100

print(a)
print(b)
print(c)

出力結果

[100   1   2]
[0 1 2]
[100   1   2]

cはaの参照なので、aの中身が変わればcも同様に変わる。

使いどころ

個人的に思いついたのは、例えば任意の関数で中身の処理自体はndarrayで行うが、引数自体はlistでもtupleでもndarraryでもOKにしたい場合。 asarrayを使えば、arrayに比べて新しいndarray分のメモリを増やす必要がなく、少しメモリを節約できる?

例えば、こんな感じですかね。

import numpy as np

a = np.array([0,1,2]) # listでもtupleでもOK

def mean(x):
    x = np.asarray(x) # aがlist等ならndarrayになおす。arrayの場合、新しいadrrayを生成するが、          
                      # asarrayの場合、参照を返すのでndaray余分に生成しない分メモリ節約

    return x.mean()

他にも使い所あったり、誤りがあればコメント等で共有してください。

matplotlibのチートシート

はじめに

こんにちはかわつあんです.

matplotlibの公式が最近新たにチートシートを作ってくださいました. github.com

日々の業務でmatplotlibを多用している私は,ちょっとしたことで躓いてそのたびにググっていました. そんな私でも,このチートシートを持っておけば大体のことはこなせそうだ,と思える大変便利なものになっていますのでこのブログで共有します.

(今回共有するチートシートは上のリンクからすべてダウンロードできます.)

チートシート1

f:id:kawats1:20200709020253p:plain

チートシート

f:id:kawats1:20200709020224p:plain

以上が新たに公開されたチートシートです.

特にAnatomy of a figureやsubplots layout,colormap各種,legend placement, annotation connection styles等は,論文等に図を採用するときに細かい調整に使えそうですね.

チートシート以外にも,さまざまなmatplotlibの使用例をまとめてくださっているので,これらも以下に共有します.

使用例紹介(初心者用)

f:id:kawats1:20200709020130p:plain

使用例紹介(中級者用)

f:id:kawats1:20200709020202p:plain

使用例紹介(その他,小技集)

f:id:kawats1:20200709015930p:plain

終わりに

以上の内容をさらに詳しく紹介する内容のオープンアクセスのテキストを作ってくださるようです.(紙媒体は50ドルで販売予定だそうです.) github.com

ぜひ参考にさせていただきたいです.

プライバシーポリシー

広告の配信について

当サイトは第三者配信の広告サービス「Googleアドセンス」を利用しています. 広告配信事業者は,ユーザーの興味に応じた広告を表示するために「Cookie(クッキー)」を使用することがあります.

Cookieを無効にする設定およびGoogleアドセンスに関して、詳しくはこちらをクリックしてください.

三者がコンテンツおよび宣伝を提供し、訪問者から直接情報を収集し、訪問者のブラウザにCookie(クッキー)を設定したりこれを認識したりする場合があります。

アクセス解析ツールについて

当サイトでは、Googleによるアクセス解析ツール「Googleアナリティクス」を利用しています。

このGoogleアナリティクスはトラフィックデータの収集のためにCookieを使用しています。

このトラフィックデータは匿名で収集されており、個人を特定するものではありません。

この機能はCookieを無効にすることで収集を拒否することが出来ますので、お使いのブラウザの設定をご確認ください。

この規約に関して、詳しくはこちらをクリックしてください。

当サイトへのコメントについて

当サイトでは、スパム・荒らしへの対応として、コメントの際に使用されたIPアドレスを記録しています。

これはブログの標準機能としてサポートされている機能で、スパム・荒らしへの対応以外にこのIPアドレスを使用することはありません。

当サイトでは、次の各号に掲げる内容を含むコメントは管理人の裁量によって承認せず、削除する事があります。

・特定の自然人または法人を誹謗し、中傷するもの。

・極度にわいせつな内容を含むもの。

・禁制品の取引に関するものや、他者を害する行為の依頼など、法律によって禁止されている物品、行為の依頼や斡旋などに関するもの。

・その他、公序良俗に反し、または管理人によって承認すべきでないと認められるもの。

免責事項

当サイトで掲載している画像の著作権・肖像権等は各権利所有者に帰属致します。権利を侵害する目的ではございません。

記事の内容や掲載画像等に問題がございましたら、各権利所有者様本人が直接メールでご連絡下さい。確認後、対応させて頂きます。

当サイトからリンクやバナーなどによって他のサイトに移動された場合、移動先サイトで提供される情報、サービス等について一切の責任を負いません。

当サイトのコンテンツ・情報につきまして、可能な限り正確な情報を掲載するよう努めておりますが、誤情報が入り込んだり、情報が古くなっていることもございます。

当サイトに掲載された内容によって生じた損害等の一切の責任を負いかねますのでご了承ください。

運営者:かわつあん

初出掲載:2020年6月29日