Skip to Content
エレガントなSciPy ―Pythonによる科学技術計算
book

エレガントなSciPy ―Pythonによる科学技術計算

by Juan Nunez-Iglesias, Stéfan van der Walt, Harriet Dashnow, 山崎 邦子, 山崎 康宏
November 2018
Intermediate to advanced
272 pages
6h 51m
Japanese
O'Reilly Japan, Inc.
Content preview from エレガントなSciPy ―Pythonによる科学技術計算
9
1.2 NumPy N 次元配列
[6 2]
ここで、
y
を編集したのにもかかわらず、
x
の値まで変更されてしまうことに注意してくださ
い。これは、
y
が同じデータを参照していたからです。
# Now the first element in x has changed to 6!
 
x
の先頭の要素が
6
に変更された。
print(x)
[6 2 3]
つまり、配列を参照する際には要注意ということです。元データを変えずにデータをいじりたい
場合には、以下のように簡単にコピーできます。
y = np.copy(x[:2])
1.2.2
 ベクトル化
本章の前の部分で配列に作用させる演算のスピードについて述べました。高速化のために
NumPy
が使う手の
1
つがベクトル化です。処理がベクトル化されていれば、配列の各要素に演算
を作用させるときに、
for
ループは必要ありません。結果として、高速になる上に、コードがより
自然で読みやすくなります。少し具体例を見ていきましょう。
x = np.array([1, 2, 3, 4])
print(x * 2)
[2 4 6 8]
最初の例は、
x
4
個の要素を持つ配列です。上記の例では、明示的に指示することなく、
x
各要素に
2
を掛けています。
y = np.array([0, 1, 2, 1])
print(x + y)
[1 3 5 5]
次に、
x
の中の各要素に、同じ形状の配列
y
の対応する要素を足しました。
上の
2
つの演算は、どちらも簡単で、ベクトル化の直観的な例になっていると思います。また ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

リーンエンタープライズ ―イノベーションを実現する創発的な組織づくり

リーンエンタープライズ ―イノベーションを実現する創発的な組織づくり

Jez Humble, Joanne Molesky, Barry O'Reilly, 角 征典, 笹井 崇司, Eric Ries
戦略的データサイエンス入門 ―ビジネスに活かすコンセプトとテクニック

戦略的データサイエンス入門 ―ビジネスに活かすコンセプトとテクニック

Foster Provost, Tom Fawcett, 竹田 正和, 古畠 敦, 瀬戸山 雅人, 大木 嘉人, 藤野 賢祐, 宗定 洋平, 西谷 雅史, 砂子 一徳, 市川 正和, 佐藤 正士
アイソモーフィックJavaScript

アイソモーフィックJavaScript

Jason Strimpel, Maxime Najim, 牧野 聡

Publisher Resources

ISBN: 9784873118604Other