我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Numpy中的shape、reshape函数的区别

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Numpy中的shape、reshape函数的区别

 1 shape()函数 

读取矩阵的长度,比如shape[0]就是读取矩阵第一维度的长度,相当于行数。它的输入参数可以是一个整数表示维度,也可以是一个矩阵。shape函数返回的是一个元组tuple,表示数组(矩阵)的维度/ 形状,例子如下:

  • w.shape[0]返回的是w的行数
  • w.shape[1]返回的是w的列数
  • df.shape():查看行数和列数

1. 数组(矩阵)只有一个维度时,shape只有shape[0],返回的是该一维数组(矩阵)中元素的个数,通俗点说就是返回列数,因为一维数组只有一行,一维情况中array创建的可以看做list(或一维数组),创建时用()和[ ]都可以,多维就使用[ ]

>>> a=np.array([1,2])
>>> a
array([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))
>>> a
array([1, 2]) 

2.数组有两个维度(即行和列)时,a.shape返回的元组表示该数组的行数与列数

 #注意二维数组要用()和[]一起包裹起来,键入print a 会得到一个用2个[]包裹的数组(矩阵)
>>> b=np.array([[1,2,3],[4,5,6]])
>>> b
array([[1, 2, 3],
       [4, 5, 6]])
>>> b.shape
(2L, 3L)

总结:使用np.array()创建数组时,

一维的可以直接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包裹起来

>>> a=np.array([[[1,2],[3,4]]])
>>> a
array([[[1, 2],
        [3, 4]]])
>>> a.shape
(1L, 2L, 2L)

返回的元组表示3个维度各包含的元素的个数。所谓元素,在一维时就是元素的个数,二维时表示行数和列数,三维时a.shape【0】表示创建的块数,a.shape【1】和a.shape【2】表示每一块(每一块都是二维的)的行数和列数。

>>> a=np.ones([2,2,3])#创建两个2行3列的数组(矩阵)
>>> a
array([[[ 1.,  1.,  1.],
        [ 1.,  1.,  1.]],
 
       [[ 1.,  1.,  1.],
        [ 1.,  1.,  1.]]])

2 reshape()函数

 改变数组的形状,并且原始数据不发生变化。但是,reshape()函数中的参数需要满足乘积等于数组中数据总数.

如:当我们将8个数使用(2,3)重新排列时,python会报错

import numpy as np
 
a=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]]
int32
 
a_r:
 [[1 2]
 [3 4]]
d:
 [[1]
 [2]
 [3]
 [4]]
e:
 [[1 2 3 4]]

而且,reshape()函数得出的数组与原数组使用的是同一个存储空间,改变一个,另一个也随之改变。

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

【参考】

Python:numpy中shape和reshape的用法 

到此这篇关于Numpy中的shape、reshape函数的区别的文章就介绍到这了,更多相关Numpy shape reshape内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Numpy中的shape、reshape函数的区别

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

numpy的shape函数有什么作用

numpy的shape函数用于获取数组的维度信息,返回一个元组,其中包含数组在每个维度上的大小。具体作用如下:1. 获取数组的维度信息:可以通过shape函数获取数组的维度信息,即数组的形状。例如,对于一个二维数组,shape函数将返回一个
2023-10-10

python中的shape函数怎么用

在Python中,shape函数常用于获取数组的维度信息。在numpy库中,可以使用shape函数来获取数组的形状。下面是shape函数的用法示例:```pythonimport numpy as np# 创建一个二维数组arr = np.
2023-10-10

Numpy中扁平化函数ravel()和flatten()的区别详解

本文主要介绍了Numpy中扁平化函数ravel()和flatten()的区别详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2023-02-20

Numpy中扁平化函数ravel()和flatten()的区别是什么

这篇文章主要介绍“Numpy中扁平化函数ravel()和flatten()的区别是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Numpy中扁平化函数ravel()和flatten()的区别是什
2023-07-05

oracle中concat函数和||的区别

concat 和 || 均为 oracle 中的字符串连接函数,区别主要在于:函数语法(concat 带括号,|| 不带)、null 处理(concat 返回 null,|| 返回空字符串)、性能(concat 较慢)及使用场景(conca
oracle中concat函数和||的区别
2024-05-03

PHP 函数和 Shell 函数的区别

php 函数和 shell 函数的主要区别在于安全性(php 函数更安全)、可靠性(shell 函数因操作系统而异)、功能(shell 函数更强大但受 shell 限制)、性能(php 函数通常更快)和复杂性(shell 函数更复杂)。它们
PHP 函数和 Shell 函数的区别
2024-04-24

PHP 函数与 Go 函数的区别?

php和go函数的主要区别包括:类型化(go强制,php可选)、默认值(php可设置,go不可)、可见性(php默认公开,go通过关键字指定)、匿名函数(php支持,go不支持)、返回多个值(php只能返回一个,go可返回多个并存储在tup
PHP 函数与 Go 函数的区别?
2024-04-25

PHP 函数与 Swift 函数的区别?

php和swift函数的主要区别包括:类型系统(php可选、swift严格)、参数传递(php值传递、swift引用传递)、可选返回值(php可null、swift必须非null)。php函数更灵活,而swift函数更安全且性能更好。PHP
PHP 函数与 Swift 函数的区别?
2024-04-26

PHP 函数与 Swift 函数的区别?

php和swift函数的主要区别包括:类型系统(php可选、swift严格)、参数传递(php值传递、swift引用传递)、可选返回值(php可null、swift必须非null)。php函数更灵活,而swift函数更安全且性能更好。PHP
PHP 函数与 Swift 函数的区别?
2024-04-26

PHP 函数和 .NET 函数的区别

php 与 .net 函数的关键差异在于语法、命名空间、类型安全性、可变参数和实战案例:语法:php 使用 function 关键字,而 .net 使用访问修饰符。命名空间:php 没有命名空间,而 .net 可以将其用于组织代码。类型安全
PHP 函数和 .NET 函数的区别
2024-04-24

PHP 函数与 Kotlin 函数的区别?

php 与 kotlin 函数的区别:php 函数返回类型可选、按值传递参数、支持变量数量参数、可声明为静态函数、允许匿名函数;kotlin 函数返回类型明确、参数可按值或引用传递、不支持变量数量参数、仅为成员函数或顶级函数、只能使用 la
PHP 函数与 Kotlin 函数的区别?
2024-04-25

PHP 函数与 Rust 函数的区别?

php 和 rust 函数的主要区别:参数传递:php 按值传递,rust 按引用传递。返回值:php 返回一个值,rust 可使用元组返回多个值或使用 result 枚举返回错误。PHP 函数与 Rust 函数的区别引言PHP 和 R
PHP 函数与 Rust 函数的区别?
2024-04-25

PHP 函数与 Julia 函数的区别?

php和julia函数的主要区别在于:语法:php函数使用“function”关键字声明,而julia函数使用“function”或“base.function”关键字并遵循不同语法。类型化:php函数是弱类型化的,而julia函数是强类型
PHP 函数与 Julia 函数的区别?
2024-04-25

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录