python之numpy的基础用法
数组-numpy
1.numpy基础
在使用reshape时不时原地操作,具有返回值,除非使用赋值操作才会改变原有值;
关于展开数组的情况如下:
从上面我们可以看出,69行输出的并不是一维数组如果操作b.reshape(12,)则是一维的。当
然使用flatten也不会产生原地操作。
有时,在使用numpy的时候我们可能还会遇到对数组加减乘除的一些情况,例如以下的几种情况:
如果出现除以0的情况则会显示如下:
还有一种情况就是在np.array中出现相同数组进行计算的情况,此时计算和上述一样但是加减乘除会按照对应位置的数字进行加减乘除;
但是有些特殊情况比如两个数组可能只是在某一维度上是一样的但是其他维度并不一样该如何解决:
以上可知t7是一维,一行六列,而t5是四行六列则选择对相应的行进行操作;
以上在列上为行数一样则选择对列进行操作;
在计算数组的时候数组坚持广播原则:
其中数组的类名为:
而数组的数值类型属于:
而在创建数组的过程中要确定数据类型的话可以加上参数dtype= “ ”;
遇到需要将多余的小数去除的时候对数组可以使用 a.astype 的操作改变数据类型;
在需要运用到数组的时候我们还需要了解到“轴”的含义:
以上对于轴的理解可能有点难,但是总体上讲0轴是行,1轴是列;
此时0轴是“块”,1轴是行,2轴是列
Ndarray中转置的使用:
在numpy中的二位数组索引的切片如果是在一个维度对行进行操作:
2.numpy数组的切片
1.切片
对行和列操作注意中间逗号区分行列,如果需要取固定的值则
前后都要加中括号;
2.数值的修改
对于需要修改的值直接就可以赋值操作:
当然选择布尔类型赋值也是可以进行相关的赋值操作的:
但是如果说要给大于0小于10的书赋值则需要选择三元运算符操作(where):
此时对于小于10的数进行赋值为0,对于大于10的数进行赋值为10;
数组赋值的裁剪操作:clip
最后nan的位置同样是nan;
数组的拼接:
其中vstack方法为在竖直方向上进行拼接数组,而hstack方法则是在水平方向上进行数组的拼接;
数组对应行列的交换(理解为赋值):
Numpy中其他的常用方法:
0是在对每一列的最大值,1是在对每一行的最小值做操作
Numpy生成随机数:
Numpy中需要注意的赋值操作,浅拷贝和深拷贝;