numpy基础用法-学习笔记-task03

1.数组的操作
1)numpy.ndarray.shape 表示数组的维度,返回一个元组,这个元组的长度就是维度的数目,即 ndim 属性(秩)。
shape
2)numpy.ndarray.flat 将数组转换为一维的迭代器,可以用for访问数组每一个元素。
flat

3)numpy.ndarray.flatten([order=‘C’]) 将数组的副本转换为一维数组,并返回。
a. order:‘C’ – 按行,‘F’ – 按列,‘A’ – 原顺序,‘k’ – 元素在内存中的出现顺序。(简记)b. order:{'C / F,'A,K},可选使用此索引顺序读取a的元素。'C’意味着以行大的C风格顺序对元素进行索引,最后一个轴索引会更改F
表示以列大的Fortran样式顺序索引元素,其中第一个索引变化最快,最后一个索引变化最快。请意,'C’和’F’选项不考虑基础数组的内存布局,仅引用轴索引的序.A’表示如果a为Fortran,则以类似Fortran的索引顺序读取元素在内存中连续,否则类似C的顺序。“ K”表示按照步序在内存中的顺序读取元素,但步幅为负时反转数据除外。默认情况下,使用Cindex顺序。
flatten
4)numpy.ravel(a, order=‘C’)
Return a contiguous flattened array.
ravel() 返回的是视图。
ravel
order=‘F’ 就是拷贝
order='F'
5)numpy.reshape(a, newshape[, order=‘C’]) 在不更改数据的情况下为数组赋予新的形状。
reshape() 函数当参数 newshape = [rows,-1] 时,将根据行数自动确定列数。
reshape
reshape() 函数当参数 newshape = -1 时,表示将数组降为一维。
newshape=-1
2.数组的转置
1)numpy.transpose(a, axes=None) Permute the dimensions of an array.
2)numpy.ndarray.T Same as self.transpose() , except that self is returned if self.ndim < 2 .
转置
3.更改维度
1)numpy.newaxis = None None 的别名,对索引数组很有用。
【例】很多工具包在进行计算时都会先判断输入数据的维度是否满足要求,如果输入数据达不到指定的维度时,可以使用 newaxis 参数来增加一个维度。
newaxis
2)numpy.squeeze(a, axis=None) 从数组的形状中删除单维度条目,即把shape中为1的维度去掉。
a) a 表示输入的数组;
b) axis 用于指定需要删除的维度,但是指定的维度必须为单维度,否则将会报错;
在机器学习和深度学习中,通常算法的结果是可以表示向量的数组(即包含两对或以上的方括号形式[[]]),如果直接利用这个数组进行画图可能显示界面为空(见后面的示例)。我们可以利用 squeeze() 函数将表示向量的数组转换为秩为1的数组,这样利用 matplotlib 库函数画图时,就可以正常的显示结果了。
squeeze()
squeeze()
matplotlab
4.数组组合
1)numpy.concatenate((a1, a2, …), axis=0, out=None) Join a sequence of arrays along an existing axis.
axis=0 我的理解是沿着X.shape里面的第一个维度拼接
axis=1 我的理解是沿着X.shape里面的第二个维度拼接
【例】连接沿现有轴的数组序列(原来x,y都是一维的,拼接后的结果也是一维的)。
一维数组拼接

【例】原来x,y都是二维的,拼接后的结果也是二维的。
二维数组拼接
【例】x,y在原来的维度上进行拼接。
拼接
2)numpy.stack(arrays, axis=0, out=None)
Join a sequence of arrays along a new axis.
【例】沿着新的轴加入一系列数组(stack为增加维度的拼接)。
stack_1
stack_2
stack_3
3)numpy.vstack(tup)
Stack arrays in sequence vertically (row wise).
numpy.hstack(tup)
Stack arrays in sequence horizontally (column wise)
vstack and hstack 01
【例】二维的情况。
vstack and hstack 02
vstack and hstack 03
hstack(),vstack() 分别表示水平和竖直的拼接方式。在数据维度等于1时,比较特殊。而当维度大于或等于2时,它们的作用相当于 concatenate ,用于在已有轴上进行操作。
hstack(),vstack(), concatenate()
5. 数组拆分
1)numpy.split(ary, indices_or_sections, axis=0)
Split an array into multiple sub-arrays as views into ary.
indices_or_sections:如果是一个整数,就用该数平均切分,如果是一个数组,为沿轴切分的位置(左开右闭)
axis:沿着哪个维度进行切向,默认为0,横向切分。为1时,纵向切分
【例】拆分数组。
spiltK()
2)numpy.vsplit(ary, indices_or_sections)
Split an array into multiple sub-arrays vertically (row-wise).
vspilt()
3)numpy.vsplit(ary, indices_or_sections)
Split an array into multiple sub-arrays vertically (row-wise).
【例】垂直切分是把数组按照高度切分
vsplit
4)numpy.hsplit(ary, indices_or_sections) Split an array into multiple sub-arrays horizontally (column-wise).
【例】水平切分是把数组按照宽度切分。
hsplit
6.数组平铺
1)numpy.tile(A, reps)
Construct an array by repeating A the number of times given by reps.
tile 是瓷砖的意思,顾名思义,这个函数就是把数组像瓷砖一样铺展开来。
【例】将原矩阵横向、纵向地复制。
tile
2)numpy.repeat(a, repeats, axis=None) Repeat elements of an array.
a. axis=0 ,沿着y轴复制,实际上增加了行数。
b. axis=1 ,沿着x轴复制,实际上增加了列数。
c. repeats ,可以为一个数,也可以为一个矩阵。
d. axis=None 时就会flatten当前矩阵,实际上就是变成了一个行向量。
【例】重复数组的元素。
repeat
7.添加和删除元素
1)1. numpy.unique(ar, return_index=False, return_inverse=False,return_counts=False, axis=None) 对于一维数组或者列表,unique函数去除其中重复的元素,并按元素由大到小返回一个新的无元素重复的元组或者列表

a. return_index=True表示返回新列表元素在旧列表中的位置,并以列表形式储存在s中。

b. return_inverse=True 表示返回旧列表元素在新列表中的位置,并以列表形式储存在p中

c. return_counts:the number of times each unique value comes up in the input array

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值