首页 > 其他分享 >Numpy中reshape的用法

Numpy中reshape的用法

时间:2024-09-06 18:20:56浏览次数:7  
标签:示例 reshape 用法 np 索引 数组 print Numpy

目录

  • 语法介绍
  • 示例
    • 示例1
    • 示例2
    • 示例3
    • 示例4

语法介绍

numpy.reshape(a, newshape, order=‘C’)

在不改变数据的情况下给数组一个新的形状。就是先将数组按给定索引顺序一维展开,然后按与展开时相同的索引顺序将展开的元素填充到新数组中;即等价于 np.reshape(np.revel(array), newshape, order) .

参数解释:

  1. newshape : 整数或整数元组,用于指示新数组的形状,格式(行row,列col,… )。

新的形状应该与原来的形状兼容,即元素个数必须相同。如果是一个整数,那么结果将是一个该长度的一维数组。
形状的其中一个维度可以是 -1,在这种情况下,新形状的该维度值是由数组的长度和其余维度自动推断出来的

  1. order: {‘C’, ‘F’, ‘A’}, 可选参数。

使用a的索引顺序读取其元素,并使用这个索引顺序将元素放入重塑的数组中。

‘C’ , 行优先顺序 (表示使用类似 C 语言的索引顺序来读/写元素,最后一个轴的索引变化最快,回到第一个轴的索引变化最慢)。
‘F’ , 列优先顺序 (表示使用类似 Fortran 语言的索引顺序来读/写元素,第一个索引变化最快,最后一个索引变化最慢)。
‘A’ , 按存储顺序 (表示如果数组 ‘a’ 在内存中是类似 Fortran 语言的数组分布方式,则按照类似 Fortran 语言的索引顺序读/写元素,否则按照类似 C 语言的顺序)。

注意 ‘C’ 和 ‘F’ 选项没有考虑底层数组的内存布局,只是参考了索引的顺序。

示例

示例1

import numpy as np

# 定义数组 b
b = np.arange(5)
print(b)
# ---------- newshape取整数 -----------------
# 返回 1 维数组(以下8种表达方式等价)
print(np.reshape(b,5))
print(np.reshape(b,-1))
print(np.reshape(b,(5,)))
print(np.reshape(b,(-1,)))

print(b.reshape(5))
print(b.reshape(5,))
print(b.reshape(-1))
print(b.reshape(-1,))

[0 1 2 3 4]
[0 1 2 3 4]
[0 1 2 3 4]
[0 1 2 3 4]
[0 1 2 3 4]
[0 1 2 3 4]
[0 1 2 3 4]
[0 1 2 3 4]
[0 1 2 3 4]

示例2

np.rashape(array,())和array.reshape()函数是等价的,下面介绍以array.reshape()形式

import numpy as np

# 定义数组 b
b = np.arange(5)
print(b)
# ---------- newshape取整数 -----------------

# 下面两个结果相同
print(b.reshape(5,1))
print(b.reshape(-1,1))


# 注意区分第一种和后面两种的不同
print(b.reshape(5,))  
print(b.reshape(1,-1))
print(b.reshape(1,5))

[0 1 2 3 4]
[[0]
 [1]
 [2]
 [3]
 [4]]
[[0]
 [1]
 [2]
 [3]
 [4]]
[0 1 2 3 4]
[[0 1 2 3 4]]
[[0 1 2 3 4]]

示例3

import numpy as np
c = np.arange(6).reshape(2,3)
print(c)
#以下四种结果相同
print(c.reshape(6))
print(c.reshape(6,))
print(c.reshape(-1))
print(c.reshape(-1,))

#以下两种结果相同
print(c.reshape(1,-1))
print(c.reshape(1,6))

#以下两种结果相同
print(c.reshape(-1,1))
print(c.reshape(6,1))

[[0 1 2]
 [3 4 5]]
[0 1 2 3 4 5]
[0 1 2 3 4 5]
[0 1 2 3 4 5]
[0 1 2 3 4 5]
[[0 1 2 3 4 5]]
[[0 1 2 3 4 5]]
[[0]
 [1]
 [2]
 [3]
 [4]
 [5]]
[[0]
 [1]
 [2]
 [3]
 [4]
 [5]]

示例4

import numpy as np
c = np.arange(6).reshape(2,3)
print(c)
#以下四种结果相同

print(c.reshape(2,3,1))
print(c.reshape(2,1,3))

print(c.reshape(3,2,1))
print(c.reshape(3,1,2))

print(c.reshape(1,2,3))

# 下面两个结果相同
print(c.reshape(1,3,2))
print(c.reshape(1,3,-1))

[[0 1 2] 
 [3 4 5]]
[[[0]      
  [1]      
  [2]]     

 [[3]      
  [4]      
  [5]]]    
[[[0 1 2]] 

 [[3 4 5]]]
[[[0]      
  [1]]     

 [[2]
  [3]]

 [[4]
  [5]]]
[[[0 1]]

 [[2 3]]

 [[4 5]]]
[[[0 1 2]
  [3 4 5]]]
[[[0 1]
  [2 3]
  [4 5]]]
[[[0 1]
  [2 3]
  [4 5]]]

标签:示例,reshape,用法,np,索引,数组,print,Numpy
From: https://blog.csdn.net/weixin_43597208/article/details/141939487

相关文章

  • Numpy中生成数组的常用方法
    目录1.np.arrage()2.np.arange()3.ones/empty/zeros函数4.np.randomnp.random.rand():np.random.random():np.random.randn()np.random.randint(low,high,size,dtype)np.random.uniform(low,high,size)np.linspace1.np.arrage()importnumpyasnp##下面两种结果相同......
  • C语言学习——sprintf函数详细解释及其用法
    文章目录函数功能:把格式化的数据写入某个字符串参数说明及应用举例解释:连接字符串打印地址信息利用sprintf的返回值使用sprintf的常见问题函数功能:把格式化的数据写入某个字符串头文件:stdio.h函数原型:intsprintf(char*buffer,constchar*format,[arg......
  • GROUPING_SETS 用法
    在Hive中,`GROUPINGSETS`是一个用于生成多个分组聚合的SQL功能,它可以让你在一个查询中指定多个分组集,这样可以有效地生成多维度的汇总数据。下面我将通过一个例子来展示如何使用`GROUPINGSETS`,并创建一个Hive表以及插入十条数据进行演示。###步骤1:创建Hive表首先,我们创建......
  • 关于ybc_game库的用法(第一期)
    大家好,我是于翱睿,今天我给大家更新一期如何正确的使用ybc_game库,避免踩坑。首先,需要说的是:所有的图片必须放在images文件夹里,在代码中不用写“images/”同样,要想保存音频,所有的音频必须放在sounds文件夹中,在代码中不用写“sounds/”所有说明我都放到注释里了,注意仔细观察那......
  • UEFI —— Status Code用法
    PEI阶段用法是PeiServices中的一个组成。code:Edk2\MdeModulePkg\Universal\ReportStatusCodeRouter\Pei\ReportStatusCodeRouterPei.c整体逻辑:调用ReportStatusCode挂在gEfiPeiRscHandlerPpiGuid上的handler都会跑一便执行对应的callbackgEfiPeiRscHandlerPpiGuid用......
  • Django中celery的使用(非常简单的用法)
    1、https://www.cnblogs.com/hard-working-Bert/p/14236125.html这里主要展示一个最简单的django中的celery任务,为了让大家都可以用上celery。话不多说,首先给大家看一下我的目录  这里的TestCelery是我的项目名称,CeleryTask是app名称。 windows启动redis服务及修改配置文......
  • 【Moveit2】MoveGroupInterface设置目标姿态,然后创建一个计划到该姿态的运动路径,stati
    PlanandExecuteusingMoveGroupInterface//CreatetheMoveItMoveGroupInterfaceusingmoveit::planning_interface::MoveGroupInterface;automove_group_interface=MoveGroupInterface(node,"panda_arm");//SetatargetPoseautoconsttarget_p......
  • SQL数据库:SQL语句中的Select@@identity用法
    select@@identity的用法 使用select@@当最后一次插入记录时,identity自动生成ID如果您使用存储过程,将非常简单,代码如下:SET@NewID=@@IDENTITY说明:在一条INSERT、SELECTINTO或大容量复制语句完成后,@@IDENTITY它包含了这个句子产生的最终标识值。如果这个句子不影响......
  • 5.科学计算模块Numpy(2)随机数的生成和ndarray属性及其创建方式
    引言通过上一篇4.科学计算模块Numpy(1)概述与初始操作-CSDN博客,我们已经了解了Numpy的概念和Numpy数组的创建,今天我们来介绍一下Numpy模块中随机数的生成和ndarray属性及其创建方式。通过阅读本篇博客,你可以:1.掌握如何使用numpy.random模块生成随机数2.了解ndarray数组的属性......
  • Selector组件的用法
    文章目录知识回顾使用方法builder属性selector属性shouldRebuild属性child属性示例代码我们在上一章回中介绍了组件之间共享数据相关的内容,本章回中将继续介绍该内容.闲话休提,让我们一起TalkFlutter吧。知识回顾我们在前面章回中介绍了全局共享数据相关的内容,......