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 数组内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 用Python写冒泡排序代码

    用Python写冒泡排序代码

    本文给大家分享一段代码使用python写一个冒泡排序小程序,代码非常简单,感兴趣的朋友参考下吧
    2016-04-04
  • OpenCV实现手势虚拟拖拽的使用示例(附demo)

    OpenCV实现手势虚拟拖拽的使用示例(附demo)

    本文主要介绍了OpenCV实现手势虚拟拖拽的使用示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-11-11
  • django中send_mail功能实现详解

    django中send_mail功能实现详解

    这篇文章主要给大家介绍了关于django中send_mail功能实现的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2018-02-02
  • Python List cmp()知识点总结

    Python List cmp()知识点总结

    在本篇内容里小编给大家整理了关于Python List cmp()用法相关知识点,有需要的朋友们跟着学习下。
    2019-02-02
  • Pytorch 神经网络—自定义数据集上实现教程

    Pytorch 神经网络—自定义数据集上实现教程

    今天小编就为大家分享一篇Pytorch 神经网络—自定义数据集上实现教程,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-01-01
  • Python 使用csv库处理CSV文件的方法

    Python 使用csv库处理CSV文件的方法

    Python中集成了专用于处理csv文件的库,名为:csv,本文给大家介绍了Python使用csv库处理CSV文件的方法及csv库中4个常用的对象,结合实例代码给大家介绍的非常详细,需要的朋友可以参考下
    2023-06-06
  • Cpython解释器中的GIL全局解释器锁

    Cpython解释器中的GIL全局解释器锁

    这篇文章主要介绍了Cpython解释器中的GIL全局解释器锁的相关资料,帮助大家更好的了解Cpython解释器,感兴趣的朋友可以了解下
    2020-11-11
  • OPCUA-Python实例

    OPCUA-Python实例

    这篇文章主要介绍了OPCUA-Python实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02
  • Python3.0中普通方法、类方法和静态方法的比较

    Python3.0中普通方法、类方法和静态方法的比较

    本文主要讲解了Python3中普通方法、类方法和静态方法的区别与比较,费了作者可大的劲整理了,希望对大家有用
    2019-05-05
  • Python pip安装第三方库实现过程解析

    Python pip安装第三方库实现过程解析

    这篇文章主要介绍了Python pip安装第三方库实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07

最新评论