数组

来源:互联网 发布:三菱plcfx3u编程手册 编辑:程序博客网 时间:2024/06/06 06:54

一、一维数组的索引和切片

a[3:7]从a中获取下标从3到7(不包括7)的数据

a[:7:2]从a中获取下标从0到7的数据,隔一个数据取一个,(0,0+2,0+4,0+6)

a[::-1]倒序获取a中的数据

二、多维数组的切片与索引

1、首先构造一个多维数组

np.arange(24).reshape(2,3,4)

2*3*4的三维数组

2、获取数据

 a[:0:0]一维都取,二维,三维取第0个数据

有两个以上冒号相连时...来代替

a[0:0]和a[:0:0]等价


a[-1::]显示第一维中最后一组数据的全部

a[:-1:]显示第一维中的第一组数据的全部

a[::-1]将一维数组进行了翻转

什么原理,没有搞清楚,希望有大神能出来解决

3、改变数组的维度

将多维数组变成一维的:a.ravel()

a.flatten()与ravel()的功能相同,但是flatten()请求内存来保存结果

*****************************

改变元组的两种方式:

a.reshape(6,2)

a.shape = (6,2)

*****************************

4.对多维数组进行转置操作

b.transpose()

三、数组的组合:

vstack,dstack,hstack,column_stack,row_stack,concatenate函数。

1、水平组合:

hstack

np.concatenate((a,b),axis=1)



2、垂直组合(与水平组相似)
np.vstack(a,b)
np.concatenate((a,b),axis=0)
3、深度组合
np.dstack(a,b)
将每个数组中的一个数取出组合成一个数组。


4、列组合与行组合没搞清楚
四、数组的分割
1、垂直分割

2、水平分割

3、axis=0进行垂直分割,axis=1进行水平分割

4、深度分割

首先创建一个三维数组


五、数组的类型

1、

b.ndim 数组的维数

b.size 数组的元素总个数

b.itemsize 数组中元素在内在中所占的字节数

b.nbytes 整个数组所占的内存空间


b.T和b.transpose()作用相同进行转置

2、扁平迭代器

获取一个元素b.flat[2],多个元素b.flat[[1,3]]

也可以改变元组中的值b.flat[[1,3]]=9

改变元组中的所有值 b.flat =0

3、将元组转化为列表

a.tolist()


0 0