NumPy---一个基于Python开发的基础科学计算库

广播运算

广播(Broadcast)是 numpy 对不同形状(shape)的数组进行数值计算的方式, 对数组的算术运算通常在相应的元素上进行。

形状不同:numpy 将自动触发广播机制

迭代器最基本的任务就是可以完成对数组元素的访问

 

 

 

 

 

 

控制遍历顺序:order='C'--行序优先   order='F'--列序优先

 

 

 

 

 

课堂练习
按照广播原则,a+b的输出是什么内容?

数组操作之修改数组形状
reshape()函数:

原型:reshape(shape,order='C')  作用:不改变数据的条件下修改形状   

shape 形状   order 'C'--按行,’F‘--按列,’A‘--原顺序,’K‘--元素在内存中的出现顺序

 

 

 

 

numpy.ndarray.flat:是一个数组元素迭代器

 

 

对数组中每个元素都进行处理,可以使用flat属性,该属性是一个数组元素迭代器:

 

 

flatten()函数:   原型:flatten(order='C')
作用:展平的数组元素并拷贝一份,顺序通常是“C风格”  注意:修改返回的数组不会对原数组产生影响
order  'C'--按行,’F'--按列, ‘A’--原顺序, ‘K’--元素在内存中的出现顺序

 

 

ravel()函数  原型:numpy.ravel(order='C')
作用:展平的数组元素,顺序通常是C风格,返回的是数组视图(view,有点类似C/C++引用reference的意味)
注意:修改会影响原始数组

 

 

 transpose()函数  原型:numpy.transpose(a,axes=None) 作用:对换数组的维度 注意:修改会影响原始数组
a 要操作的数组  axes 整数列表,对应维度,通常所有维度都会对换

 

 

ndarray.T : 类似于transpose()函数  对换数组的维度

 

 

rollaxis()函数: 原型:numpy.rollaxis(a,axis,start=0) 作用:向后滚动特定的轴到一个特定位置
a 要操作的数组  axis  要向后滚动的轴,其它轴的相对位置不会改变
start 默认为零,表示完整的滚动<br/>会滚动到特定位置

 

 

 

swapaxes()函数:  原型:numpy.swapaxes(a,axis1,axis2) 

作用:交换数组的两个轴
a 要操作的数组 

axis1  对应第一个轴的整数 

axis2  对应第二个轴的整数

 

 

broadcast()函数:用于模仿广播的对象

 

对y广播x

b=np.broadcast(x,y)

它拥有iterator属性,基于自身组件的迭代器元件

 

shape 属性返回广播对象的形状

print('广播对象的现状:')
print(b.shape)
print('\n')

broadcast_to()函数:将数组广播到新形状
原型:numpy.broadcast_to(array,shape,subok=False)
作用:将数组广播到新形状。它在原始数组上返回只读视图。它通常不连续。如果新形状不符合NumPy的广播规则,该函数可能会抛出ValueError
array 待修改的数组  shape  修改后的形状

 

 

expand_dims()函数:扩展数组的形状
原型:numpy.squee(arr,axis=None) 

作用:通过在指定位置插入新的轴来扩展数组形状
arr 输入数组  axis 新轴插入的位置

 

squeeze()函数:

原型:numpy.squeeze(arr,axis)

作用:从给定数组的形状中删除一维的条目
arr 输入数组  axis  删除轴的位置

 

concatenate()函数:

原型:numpy.concatenate((a1,a2,...),axis)

作用:用于沿指定轴连接相同形状的俩个或多个数组
a1,a2,... 相同类型的数组   axis  沿着它连接数组的轴,默认为0

 

stack()函数: 

原型:numpy.stack(arrays,axis) 

作用:用于沿新轴连接数组序列
arrays 相同形状的数组序列  axis 数组中的轴,输入数组沿着它来堆叠

 

hstack()函数:通过水平堆叠来生成数组

 

vstack()函数:通过垂直堆叠来生成数组

 

split()函数:

原型:numpy.split(ary,indices_or_sections,axis=0)
作用:函数沿特定的轴将数组分割为子数组
ary 被分割的数组 indices_or_sections 是一个整数,就用该数平均切分,如果是一个数组,为沿轴切分的位置(左开右闭)
axis 沿着哪个维度进行切向,默认为0,横向切分。为1时,纵向切分。

 

hsplit()函数:用于水平分割数组

 

vsplit()函数:用于垂直分割数组

 

resize()函数:

原型:numpy.resize(arr,shape)

作用:返回指定大小的新数组
arr 要修改大小的数组  shape 返回数组的新形状

 

append()函数:

原型:numpy.append(arr,values,axis=None)
作用:在数组的末尾添加值 追加操作会分配整个数组,并把原来的数组复制到新数组中 输入数组的维度必须匹配否则将生成ValueError
arr 输入数组 values 要向arr添加的值,需要和arr形状相同(除了要添加的轴)
axis 默认为None。当axis无定义时,是横向加成,返回总是为一维数组!当axis有定义的时候,分别为0和1的时候。
为0的时候(列数要相同)。当axis 为1时,数组是加在右边(行数要相同)

 

insert()函数:

原型:numpy.insert(arr,obj,values,axis)

作用:在给定索引之前,沿给定轴在输入数组中插入值
注意:如果值的类型转换为要插入,则它与输入数组不同。插入没有原地的,函数会返回一个新数组。此外,如果未提供轴,则输入数组会被展开
arr 输入数组 obj 在其之前插入值的索引 values 要插入的值 values 沿着它插入的轴,如果未提供,则输入数组会被展开

 

delete()函数:

原型:numpy.delet(arr,obj,axis)
作用:返回从输入数组中删除指定子数组的新数组。与insert()函数的情况一样,如果未提供轴参数,则输入数组将展开
arr 输入数组 obj可以被切片,整数或者整数数组,表明要从输入数组删除的子数组 axis 沿着它删除给定子数组的轴,如果未提供,则输入数组会被展开

 

unique()函数:

原型:numpy.unique(arr,return_index,return_inverse,return_counts)
作用:去除数组中的重复元素
arr 输入数组,如果不是一维数组则会展开 return_index 如果为true,返回新列表元素在旧列表中的位置(下标),并以列表形式储
return_inverse如果为true,返回新列表元素在旧列表中的位置(下标),并以列表形式储 return_counts如果为true,返回去重新组中的元素在原数组中出现次数

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值