Python ndarray 数组的变形详情

 更新时间:2022年09月29日 14:58:16   作者:正在学习中的李斌  
这篇文章主要介绍了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 数组的变形详情的文章就介绍到这了,更多相关Python ndarray 数组内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • flask框架中勾子函数的使用详解

    flask框架中勾子函数的使用详解

    这篇文章主要介绍了flask框架中勾子函数的使用详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08
  • python 读取数据库并绘图的实例

    python 读取数据库并绘图的实例

    今天小编就为大家分享一篇python 读取数据库并绘图的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • python游戏实战项目之童年经典超级玛丽

    python游戏实战项目之童年经典超级玛丽

    史上十大最经典小霸王游戏中魂斗罗只能排在第二,那么第一是谁?最经典最风靡的当属超级玛丽,那个戴帽子的大胡子穿着背带裤的马里奥哪个不认得,小编带你用python实现超级玛丽缅怀童年
    2021-09-09
  • python实现日志按天分割

    python实现日志按天分割

    这篇文章主要为大家详细介绍了python实现日志按天分割,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-07-07
  • python多继承(钻石继承)问题和解决方法简单示例

    python多继承(钻石继承)问题和解决方法简单示例

    这篇文章主要介绍了python多继承(钻石继承)问题和解决方法,结合实例形式分析了Python多继承调用父类初始化方法相关操作技巧,需要的朋友可以参考下
    2019-10-10
  • Python中print和return的作用及区别解析

    Python中print和return的作用及区别解析

    print的作用是输出数据到控制端,就是打印在你能看到的界面上。这篇文章给大家介绍Python中print和return的作用及区别解析,感兴趣的朋友跟随小编一起看看吧
    2019-05-05
  • 详解将Python程序(.py)转换为Windows可执行文件(.exe)

    详解将Python程序(.py)转换为Windows可执行文件(.exe)

    这篇文章主要介绍了详解将Python程序(.py)转换为Windows可执行文件(.exe),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-07-07
  • Python开发常用的一些开源Package分享

    Python开发常用的一些开源Package分享

    这篇文章主要介绍了Python开发常用的一些开源Package分享,常用的开源项目包括WEB开发框架、工具包、数据库操作包、网络操作包等,需要的朋友可以参考下
    2015-02-02
  • Seaborn数据分析NBA球员信息数据集

    Seaborn数据分析NBA球员信息数据集

    这篇文章主要为大家介绍了Seaborn数据分析处理NBA球员信息数据集案例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09
  • 举例讲解Python中的list列表数据结构用法

    举例讲解Python中的list列表数据结构用法

    这篇文章主要介绍了Python中的list列表数据结构用法,列表是Python内置的六种集合类数据类型中最常见的之一,需要的朋友可以参考下
    2016-03-03

最新评论