数组的形状

简介: 【5月更文挑战第6天】数组的形状。

数组对象的shape属性可用于查看或改变数组的形状,示例代码如下。

a=np.arange(12) #创建一维数组,其中共有12个元素
a
array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11])
a.shape #查看数组形状
(12,)
a.shape=(2,-1) #更改数组形状为2行,-1表示每行中的元素个数自动计算
a
array([[ 0, 1, 2, 3, 4, 5],
[ 6, 7, 8, 9, 10, 11]])
reshape()方法可更改数组形状,并返回更改后的新数组,示例代码如下。

a.reshape((3,-1)) #更改数组形状,返回新数组
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]])
a.reshape((2,3)) #reshape()方法不能减少或增加数组元素个数
Traceback (most recent call last):
File "", line 1, in
ValueError: cannot reshape array of size 12 into shape (2,3)
resize()方法的refcheck参数为False时,可在改变形状的同时更改元素个数,示例代码如下。
a.resize((3,4)) #更改形状
a
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]])
a.resize((2,3),refcheck=False) #更改形状并减少元素个数
a
array([[0, 1, 2],
[3, 4, 5]])
a.resize((2,5),refcheck=False) #增加元素个数
a
array([[0, 1, 2, 3, 4],
[5, 0, 0, 0, 0]])
np.ravel()函数可将数组转换为一维数组,示例代码如下。
a=np.arange(12)
a.resize((3,4))
a
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]])
np.ravel(a) #返回一维数组,默认行优先
array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11])
np.ravel(a,order='F') #返回一维数组,列优先
array([ 0, 4, 8, 1, 5, 9, 2, 6, 10, 3, 7, 11])

目录
相关文章
|
7月前
|
存储 机器学习/深度学习 算法
【算法训练-数组 三】【数组矩阵】螺旋矩阵、旋转图像、搜索二维矩阵
【算法训练-数组 三】【数组矩阵】螺旋矩阵、旋转图像、搜索二维矩阵
101 0
|
6月前
|
Python
如何查询RGB图像的三维numpy数组中有多少个不同的RGB点,并打印具体数值?
如何查询RGB图像的三维numpy数组中有多少个不同的RGB点,并打印具体数值?
vector打印锯齿矩阵
vector打印锯齿矩阵
|
7月前
|
C++ 容器
[C++] 对二维数组中的二维坐标点x,y进行排序
[C++] 对二维数组中的二维坐标点x,y进行排序
200 0
求出N×M整型数组的最大元素及其所在的行坐标及列坐标(如果最大元素不唯一,选择位置在最前面的一个)。
求出N×M整型数组的最大元素及其所在的行坐标及列坐标(如果最大元素不唯一,选择位置在最前面的一个)。
373 0
|
网络架构 Python
矩阵各行元素之和
矩阵各行元素之和
100 0
|
C语言
一篇文章搞定字符串的旋转问题(数组旋转问题)!
一篇文章搞定字符串的旋转问题(数组旋转问题)!
89 0
给定三个顶点的坐标使用程序计算三角形
给定三个顶点的坐标使用程序计算三角形
76 0
R7-5 求矩阵各行元素之和
R7-5 求矩阵各行元素之和
111 0
|
人工智能 Java 算法框架/工具
二维前缀和数组&二维差分数组
二维差分数组div中的每一个格子记录的是「以当前位置为区域的左上角(区域右下角恒定为原数组的右下角)的值的变化量」【应该不固定 可以倒转】
374 0
二维前缀和数组&二维差分数组