Numpy の ndarray の2次元配列と簡単な作図
モジュールのインポート
import numpy as np
import matplotlib.pyplot as plt
import scienceplots
#Warning : As of version 2.0.0, you need to add import scienceplots before setting the style (plt.style.use('science')).
plt.style.use(['science', 'notebook'])
2次元配列
a1 = np.array([[1.1,1.2,1.3],[2.1,2.2,2.3],[3.1,3.2,3.3]])
a1
array([[1.1, 1.2, 1.3],
[2.1, 2.2, 2.3],
[3.1, 3.2, 3.3]])
a1.ravel() # 1次元配列に変換
array([1.1, 1.2, 1.3, 2.1, 2.2, 2.3, 3.1, 3.2, 3.3])
https://numpy.org/doc/stable/reference/generated/numpy.ravel.html
スライシング
a1[0,:] # 行のスライシング
array([1.1, 1.2, 1.3])
a1[0:1,:]
array([[1.1, 1.2, 1.3]])
a1[:,0] # 列のスライシング
array([1.1, 2.1, 3.1])
a1[:,0:1]
array([[1.1],
[2.1],
[3.1]])
a1[0]
array([1.1, 1.2, 1.3])
乱数
a2 = np.random.randn(3,3)
a2
array([[ 0.47771597, 0.37535963, 1.2353505 ],
[ 1.4094989 , 0.69342684, -0.43977754],
[-0.60745483, 0.70770424, -0.37595966]])
a2[a1>=3]
array([-0.60745483, 0.70770424, -0.37595966])
メッシュグリッド
fig = plt.figure()
x = np.linspace(0,10,11)
y = np.linspace(10,20,11)
xv, yv = np.meshgrid(x,y)
zv = xv**2 + yv**2
plt.contourf(xv, yv, zv, levels=10)
plt.colorbar()
fig.savefig("meshgrid_ex.pdf")
zv
array([[100., 101., 104., 109., 116., 125., 136., 149., 164., 181., 200.],
[121., 122., 125., 130., 137., 146., 157., 170., 185., 202., 221.],
[144., 145., 148., 153., 160., 169., 180., 193., 208., 225., 244.],
[169., 170., 173., 178., 185., 194., 205., 218., 233., 250., 269.],
[196., 197., 200., 205., 212., 221., 232., 245., 260., 277., 296.],
[225., 226., 229., 234., 241., 250., 261., 274., 289., 306., 325.],
[256., 257., 260., 265., 272., 281., 292., 305., 320., 337., 356.],
[289., 290., 293., 298., 305., 314., 325., 338., 353., 370., 389.],
[324., 325., 328., 333., 340., 349., 360., 373., 388., 405., 424.],
[361., 362., 365., 370., 377., 386., 397., 410., 425., 442., 461.],
[400., 401., 404., 409., 416., 425., 436., 449., 464., 481., 500.]])
前のページに戻る
「Python」の目次ページに戻る