当前位置:网站首页>浅谈Numpy中的shape、reshape函数的区别
浅谈Numpy中的shape、reshape函数的区别
2022-08-09 19:54:00 【nginx】
读取矩阵的长度,比如shape[0]就是读取矩阵第一维度的长度,相当于行数。它的输入参数可以是一个整数表示维度,也可以是一个矩阵。shape函数返回的是一个元组tuple,表示数组(矩阵)的维度/ 形状,例子如下:
- w.shape[0]返回的是w的行数
- w.shape[1]返回的是w的列数
- df.shape():查看行数和列数1. 数组(矩阵)只有一个维度时,shape只有shape[0],返回的是该一维数组(矩阵)中元素的个数,通俗点说就是返回列数,因为一维数组只有一行,一维情况中array创建的可以看做list(或一维数组),创建时用()和[ ]都可以,多维就使用[ ]
2.数组有两个维度(即行和列)时,a.shape返回的元组表示该数组的行数与列数
>>> a=np.array([1,2])>>> aarray([1, 2])>>> a.shape(2L,)>>> a.shape[0]2L>>> a.shape[1]IndexError: tuple index out of range #最后报错是因为一维数组只有一个维度,可以用a.shape或a.shape[0]来访问#这个使用的是两个()包裹,得到的数组和前面的一样>>> a=np.array((1,2))>>> aarray([1, 2])
总结:使用np.array()创建数组时,
#注意二维数组要用()和[]一起包裹起来,键入print a 会得到一个用2个[]包裹的数组(矩阵)>>> b=np.array([[1,2,3],[4,5,6]])>>> barray([[1, 2, 3],[4, 5, 6]])>>> b.shape(2L, 3L)
一维的可以直接np.array([1,2,3])或者np.array((1,2,3))
二维的要使用np.array([[1,2,3],[1,2,3]]),用一个()和一个[]把要输入的list包裹起来
三维的要使用np.array([[[1,2,3],[1,2,3]]]),用一个()和两个[]把要输入的list包裹起来
返回的元组表示3个维度各包含的元素的个数。所谓元素,在一维时就是元素的个数,二维时表示行数和列数,三维时a.shape【0】表示创建的块数,a.shape【1】和a.shape【2】表示每一块(每一块都是二维的)的行数和列数。
>>> a=np.array([[[1,2],[3,4]]])>>> aarray([[[1, 2],[3, 4]]])>>> a.shape(1L, 2L, 2L)
2 reshape()函数改变数组的形状,并且原始数据不发生变化。但是,reshape()函数中的参数需要满足乘积等于数组中数据总数.
>>> a=np.ones([2,2,3])#创建两个2行3列的数组(矩阵)>>> aarray([[[ 1., 1., 1.],[ 1., 1., 1.]],[[ 1., 1., 1.],[ 1., 1., 1.]]])
如:当我们将8个数使用(2,3)重新排列时, python会报错
而且,reshape()函数得出的数组与原数组使用的是同一个存储空间,改变一个,另一个也随之改变。
import numpy as npa=np.array([1,2,3,4])b=np.array([[1,2,3,4],[4,5,6,7],[7,8,9,1]])print("a:\n",a)print("b:\n",b)print(b.dtype)a_r=a.reshape((2,2))print("a_r:\n",a_r)d=a.reshape((-1,1))print("d:\n",d)e=a.reshape((1,-1))print("e:\n",e)#结果如下a:[1 2 3 4]c:[[1 2 3 4][4 5 6 7][7 8 9 1]]int32a_r:[[1 2][3 4]]d:[[1][2][3][4]]e:[[1 2 3 4]]

【注意】shape和reshape()函数都是对于数组(array)进行操作的,对于list结构是不可以的

边栏推荐
- 如何在WPF中设置Grid ColumnDefinitions的样式
- 痛击面试官 CURD系统也能做出技术含量
- 基于网络数据流的未知密码协议逆向分析
- Ankerui supports Ethernet communication, profibus communication embedded energy meter APM guiding technical requirements-Susie Week
- 3D感知(二):单目3D物体检测
- 【Efficient Tools】Remote Control Software ToDesk (Favorites)
- 6 g underwater channel modeling were summarized based on optical communication
- Characteristics and Development Prospects of Korea's Cyber Security System
- 智能家居设备安全分析技术综述
- LeetCode Daily Question (321. Create Maximum Number)
猜你喜欢
随机推荐
钢材行业供应链协同管理系统提升企业上下游密切度,精细化企业内部管理
2.2 监督学习-1
智能家居设备安全分析技术综述
【随笔】致19期的小伙伴们
Lyapp exponents and bifurcation diagrams for fractional chaotic systems
《评估、创建和使用知识图谱的限制》2022最新230页博士论文,根特大学
安科瑞无线物联网智能电表ADW300指导性技术要求-Susie 周
Ankerui supports Ethernet communication, profibus communication embedded energy meter APM guiding technical requirements-Susie Week
安科瑞支持以太网通讯、profibus通讯嵌入式电能表APM指导性技术要求-Susie 周
PCL学习之滤波Filtering
What to do if Windows 11 can't find Internet Explorer
字节一面:TCP 和 UDP 可以使用同一个端口吗?
【图文并茂】如何进行Win7系统的重装
Acrel5000web能耗系统在某学院的应用-Susie 周
Laravel DB批量更新的方法
LED闪烁 闪灯芯片IC 手电筒IC 闪灯控制IC 闪烁IC流水灯
【Jmeter】分布式搭建
韩国网络安全体系特征与发展前景
CMake installation upgrade higher version
获取数组最后一项别再用array.length-1了









