گنجینه تمرینات پایتون

چند تابع مهم در نامپای:

ساختن اعداد دارای توالی

numpy.arrange([start, ]stop, [step, ]dtype=None)

برای اسلایس یک ارایه نامپای میتوانید تابع slice را به یک متغیر نامپای بدهید

slice([start, ]stop, [step, ]dtype=None)

مثال:

import numpy as np 
a = np.arange(10) 
print a[slice(2,7,2)]

درباره توابع linspace, ogrid, mgrid نیز تحقیق کنید و حداقل یک مثال ارائه دهید.
با تابع مشگرید آشنا شوید:

np.meshgrid(*xi,**kwargs)

ورودی

x1, x2,..., xn : array_like
۱-D arrays representing the coordinates of a grid.

خروجی

X1, X2,..., XN : ndarray
For vectors x1, x2,..., xn with lengths Ni=len(xi) , return (N1, N2, N3,...Nn) shaped arrays

مثال:

nx, ny = (3, 2) #This is a Tuple, but not nx & ny
x = np.linspace(0, 1, nx) 
y = np.linspace(0, 1, ny)
xv, yv = np.meshgrid(x, y) #what is the output of meshgrid()?

هر چیزی بعد از علامت # کامنت است و به وسیله کامپایلر پایتون تفسیر نمیشود.
مثالی دیگر (معنای زوج مرتب)

import matplotlib.pyplot as plt
x = np.arange(-5, 5, 0.1)
y = np.arange(-5, 5, 0.1)
xx, yy = np.meshgrid(x, y, sparse=True)
z = np.sin(xx**2 + yy**2) / (xx**2 + yy**2)
h = plt.contourf(x,y,z)
plt.show()

#سوال با توجه به مثال فوق دایره های هم مرکز بکشید و فایل را در رایانه تان ذخیره کنید.

نتیجه کارتان باید به این شکل باشد

این یک ماتریس ۳x۳ است

import numpy as np 
a = np.array([[1,2,3],[3,4,5],[4,5,6]])

#سوال : ستون دوم را انتخاب کنید یعنی نتیجه باید بشکل زیر باشد:

[۲ ۴ ۵]

متد shape

import numpy as np 
a = np.array([[1,2,3],[4,5,6]]) 
print(a.shape)

#سوال : خروجی چیست؟

میتوانید با استفاده از توابع زیر ابعاد ماتریس ها را تغییر دهید:

# this resizes the ndarray 
import numpy as np 

a = np.array([[1,2,3],[4,5,6]]) 
a.shape = (3,2) 
print(a)

یا از تابع زیر استفاده کنید:

import numpy as np 
a = np.array([[1,2,3],[4,5,6]]) 
a = a.reshape(3,2) 
print(a)

#سوال : از روی داده های زیر یک ماتریس سه بعدی(۴*۴*۲) ایجاد کنید:

a = np.arange(32)

#سوال : به کمک چهار تابع زیر ماتریس هایی با ابعاد دلخواه ایجاد کنید:

numpy.zeros()
numpy.ones()
numpy.empty()
numpy.asarray()

انتخاب المان مبتنی بر اندیس دهی صحیح:

import numpy as np 

x = np.array([[1, 2], [3, 4], [5, 6]]) 
y = x[[0,1,2], [0,1,0]] 
print(y)

پاسخ:
المانهایی با اندیس های زیر انتخاب میشوند:

(۰,۰) - (۱,۰) - (۲,۰)

انتخاب المان مبتنی بر اندیس دهی بولی:

x = np.array([[ 0,  3,  2],[ 7, 5, 3],[ 3, 6, 9]])
print(x[x>5])

توابع any() و isnan() چه عملکردی دارند و در انتخاب المان مبتنی بر اندیس دهی بولی چه کاربردی دارند؟
مثال:

l = [0, False]
print(any(l))

و

import numpy as np 
a = np.array([np.nan, 1,2,np.nan,3,4,5]) 
print(a[~np.isnan(a)])

علامت ~ به معنای نقض یک گزاره است.
با پکیج matplotlib میتوانید هر نوع نموداری را رسم کنید- این دو مثال را در نظر بگیرید:

برای رسم نمودارهای سه بعدی از mpl_toolkits.mplot3d استفاده کنید.

from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
from matplotlib import cm
import numpy as np

fig = plt.figure()
#get Current axes
ax = fig.gca(projection='3d')

# Make data.
X = np.arange(-5, 5, 0.25)
Y = np.arange(-5, 5, 0.25)
X, Y = np.meshgrid(X, Y)
R = np.sqrt(X**2 + Y**2)
Z = np.sin(R)

# Plot the surface.
surf = ax.plot_surface(X, Y, Z, cmap=cm.coolwarm, linewidth=0, antialiased=False)

# Customize the z axis.
ax.set_zlim(-1.01, 1.01)
plt.show()

معنی عبارات زیر در کد بالا چیست؟

cmap=cm.coolwarm, linewidth=0, antialiased=False

مثال بعدی یک مثال دوبعدی است:

import matplotlib.pyplot as plt
y = np.arange(10)
plt.plot(y)
plt.show()

#سوال :
به شکل دوبعدی بالا لیبل x و y اضافه کنید و زیر نمودار را هاشور بزنید.

سوال ها