本文主要介绍了Python入门到精通-20个非常有用的Numpy函数,通过具体的内容展现,希望对大家Python语言的学习有所帮助。
以下这些函数并不常见,甚至你可能都没听说过,但是在有些时候它们真的很有用。
np.full_like
我敢打赌,你肯定使用过像ones_like 或 zeros_like 这样的常见 NumPy 函数。 full_like 和这两个完全一样,除了你可以创建一个与另一个矩阵具有相同形状的矩阵但是这些矩阵是使用自定义值填充的。
array = np.array([[1, 4, 6, 8], [9, 4, 4, 4], [2, 7, 2, 3]])
array_w_inf = np.full_like(array, fill_value=np.pi, dtype=np.float32)
array_w_inf
array([[3.1415927, 3.1415927, 3.1415927, 3.1415927],
[3.1415927, 3.1415927, 3.1415927, 3.1415927],
[3.1415927, 3.1415927, 3.1415927, 3.1415927]], dtype=float32)
在这里,我们正在创建一个数组值都是pi 矩阵。
np.logspace
我相信你经常使用linspace。它可以在一个区间内创建自定义的线性间隔数据点数量。它的同类logspace在这方面做得更深入一些。它可以在对数尺度上生成均匀间隔的自定义点数。你可以选择任何一个数作为基数,只要它是非零的:
log_array = np.logspace(start=1, stop=100, num=15, base=np.e)
log_array
array([2.71828183e+00, 3.20167238e+03, 3.77102401e+06, 4.44162312e+09,
5.23147450e+12, 6.16178472e+15, 7.25753148e+18, 8.54813429e+21,
1.00682443e+25, 1.18586746e+28, 1.39674961e+31, 1.64513282e+34,
1.93768588e+37, 2.28226349e+40, 2.68811714e+43])
np.meshgrid
这是只有在文档中才能看到的函数之一。因为大部分人难理解它。可以使用meshgrid从给定的X和Y数组创建每个可能的坐标对。最后,如果你的时间不是很紧张,并且又想快速的python提高,最重要的是不怕吃苦,建议你可以架微♥信:2028979958 ,那个真的很不错,很多人进步都很快,需要你不怕吃苦哦!大家可以去添加上看一下~
这里有一个简单的例子:
x = [1, 2, 3, 4]
y = [3, 5, 6, 8]
xx, yy = np.meshgrid(x, y)
xx
array([[1, 2, 3, 4],
[1, 2, 3, 4],
[1, 2, 3, 4],
[1, 2, 3, 4]])
yy
array([[3, 3, 3, 3],
[5, 5, 5, 5],
[6, 6, 6, 6],
[8, 8, 8, 8]])
得到 16 个唯一坐标对,结果数组中的每个索引到索引元素对对应一个。可视化一下就很好理解了
plt.plot(xx, yy, linestyle=“none”, marker=“o”, color=“red”);
meshgrid通常用于使用循环需要很长时间的复杂任务。如绘制三维正弦函数等高线图就是一个例子:
def sinus2d(x, y):
return np.sin(x) + np.sin(y)
xx, yy = np.meshgrid(np.linspace(0, 2 * np.pi, 100), np.linspace(0, 2 * np.pi, 100))
z = sinus2d(xx, yy) # Create the image on this grid
import matplotlib.pyplot as plt
plt.imshow(z, origin=“lower”, interpolation=“none”)
plt.show()
np.triu / np.tril
与ones_like或zeros_like类似,这两个函数在矩阵的某个对角线上方或下方返回0