Python ndarray 数组的变形详情

作者:正在学习中的李斌 时间:2023-05-13 14:58:47 

一、维数的变形

Python ndarray 数组的变形详情

1. 一维数组转二维数组以及同维变换

import numpy as np

arr_1d = np.arange(12)
# 使用 numpy 的
arr1 = np.reshape(arr_1d,(3,4))
# 使用 ndarray 的
arr2 = arr_1d.reshape((3, 4))

函数resize()的作用跟reshape()类似,但是会改变所作用的数组,相当于有inplace=True的效果

2. 二维数组转化维度也可以用这两个函数

import numpy as np

arr_2d = np.array([[1, 1, 1, 1], [2, 2, 2, 2], [3, 3, 3, 3]])

arr_2d.reshape((2,6))
# -1 表示不确定有多少列
arr_2d.reshape((4,-1))

3. 二维数组转一维数组

ravel()flatten()
两者的区别在于返回拷贝(copy)还是返回视图(view),flatten()返回一份拷贝,需要分配新的内存空间,对拷贝所做的修改不会影响原始矩阵,而ravel()返回的是视图(view),会影响原始矩阵。因此在使用ravel时候要格外小心,以免数据修改造成原始数据的改变。

import numpy as np

arr_2d = np.array([[1, 1, 1, 1], [2, 2, 2, 2], [3, 3, 3, 3]])
a = arr_2d.flatten()
a[0] = -999
a, arr_2d
b = arr_2d.ravel()
b
b[0] = -999
b, arr_2d

二、数组的拼接

1. 横向拼接

hstack() ——水平拼接,沿着行的方向,对列进行拼接。
concatenate() 也可以完成相应的功能,axis=1 时,沿水平方向叠加。

import numpy as np

a = np.array([1,2,3,4]).reshape((2,2), order='F')
b = np.array([0,0,1,1]).reshape((2,2))
a, b

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

2. 纵向拼接

vstack() ——垂直拼接,沿着列的方向,对行进行拼接。
concatenate() 也可以完成相应的功能,axis=0 时,沿垂直方向叠加

import numpy as np

a = np.array([1,1,0,0]).reshape((2,2))
b = np.array([0,1,0,1]).reshape((2,2))
a, b

varr = np.vstack((a, b))
varr

varr = np.concatenate((a, b), axis=0)
varr

三、数组的分割

1. 横向分割

hsplit() ——水平拆分,沿着行的方向,对列进行拼接。
split() 也可以完成相应的功能,axis=1 时,沿水平方向拆分。

import numpy as np

a = np.array([1,1,0,0]).reshape((2,2))
b = np.array([0,1,0,1]).reshape((2,2))

harr = np.hstack((a, b))
np.hsplit(harr, 2)

np.split(harr, 2, axis=1)

2. 纵向分割

hvplit() ——垂直拆分,沿着列的方向,对行进行拼接。
split() 也可以完成相应的功能,axis=0 时,沿垂直方向拆分。

import numpy as np

a = np.array([1,1,0,0]).reshape((2,2))
b = np.array([0,1,0,1]).reshape((2,2))

varr = np.vstack((a, b))
np.vsplit(varr, 2)

np.split(varr, 2, axis=0)

Python ndarray 数组的变形详情

来源:https://blog.csdn.net/qq_35240689/article/details/126971597

标签:Python,ndarray,数组,变形
0
投稿

猜你喜欢

  • Python面向对象编程中的类和对象学习教程

    2023-08-14 06:47:30
  • 如何在 Matplotlib 中更改绘图背景的实现

    2022-08-28 03:13:36
  • 解决Django加载静态资源失败的问题

    2023-09-11 21:10:51
  • css基础教程属性篇之盒子模型

    2008-07-29 12:05:00
  • python 实现批量替换文本中的某部分内容

    2021-05-19 18:06:42
  • Django shell调试models输出的SQL语句方法

    2022-07-13 00:59:50
  • Python实现CET查分的方法

    2023-06-13 12:05:51
  • pytorch 使用半精度模型部署的操作

    2022-04-17 21:33:36
  • python模块的安装以及安装失败的解决方法

    2023-09-14 06:33:04
  • Python爬虫入门案例之回车桌面壁纸网美女图片采集

    2022-12-25 19:40:57
  • layui表单提交到后台自动封装到实体类的方法

    2024-04-22 22:33:11
  • Python实现从URL地址提取文件名的方法

    2023-11-28 02:39:48
  • Python编程求质数实例代码

    2021-12-03 23:17:18
  • python flask 如何修改默认端口号的方法步骤

    2021-07-04 16:35:14
  • 聊聊Pytorch torch.cat与torch.stack的区别

    2021-05-07 02:07:39
  • Python实现将sqlite数据库导出转成Excel(xls)表的方法

    2024-01-18 02:05:10
  • Python学习入门之区块链详解

    2021-07-15 18:21:55
  • 非常酷炫的Bootstrap图片轮播动画

    2024-04-23 09:16:34
  • python运行脚本文件的三种方法实例

    2022-07-08 11:10:21
  • mysql利用覆盖索引避免回表优化查询

    2024-01-12 21:34:11
  • asp之家 网络编程 m.aspxhome.com