numpy.squeeze()函数
语法:numpy.squeeze(a,axis = None)
- 1)a表示输入的数组;
- 2)axis用于指定需要删除的维度,但是指定的维度必须为单维度,否则将会报错;
- 3)axis的取值可为None 或 int 或 tuple of ints, 可选。若axis为空,则删除所有单维度的条目;
- 4)返回值:数组
- 5) 不会修改原数组;
作用:从数组的形状中删除单维度条目,即把shape中为1的维度去掉
引用:https://docs.scipy.org/doc/numpy/reference/generated/numpy.squeeze.html
场景:在机器学习和深度学习中,通常算法的结果是可以表示向量的数组(即包含两对或以上的方括号形式[[]]),如果直接利用这个数组进行画图可能显示界面为空(见后面的示例)。我们可以利用squeeze()函数将表示向量的数组转换为秩为1的数组,这样利用matplotlib库函数画图时,就可以正常的显示结果了。
例1
#例1
import numpy as npa = np.arange(10).reshape(1,10)
a
a.shape
b = np.squeeze(a)
b
b.shape
例2
例3
结论:根据上述例1~3可知,np.squeeze()函数可以删除数组形状中的单维度条目,即把shape中为1的维度去掉,但是对非单维的维度不起作用。
例4
例5
例6
例7
例8:matplotlib画图示例
例8:
补充一下:
1、Python isinstance() 函数 https://www.runoob.com/python/python-func-isinstance.html
描述:
isinstance() 函数来判断一个对象是否是一个已知的类型,类似 type()。
isinstance() 与 type() 区别:
type() 不会认为子类是一种父类类型,不考虑继承关系。
isinstance() 会认为子类是一种父类类型,考虑继承关系。
如果要判断两个类型是否相同推荐使用 isinstance()。
语法:
以下是 isinstance() 方法的语法:
isinstance(object, classinfo)
2、Matplotlib中%matplotlib inline是什么、如何使用? https://blog.csdn.net/liangzuojiayi/article/details/78183783
注意:既然是IPython的内置magic函数,那么在Pycharm中是不会支持的。
总结:%matplotlib inline 可以在Ipython编译器里直接使用,功能是可以内嵌绘图,并且可以省略掉plt.show()这一步。