文章详情

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

请输入下面的图形验证码

提交验证

短信预约提醒成功

numpy数组坐标轴问题解决

2023-03-13 11:58

关注

不知道大家有没有一种感觉,每次当使用numpy数组的时候坐标轴总是傻傻分不清楚,然后就会十分的困惑,每次运算都需要去尝试好久才能得出想要的结果。这里我们来简单解释一下numpy中一维,二维,三维数组的坐标轴问题。

首先我们讨论一维的情况,代码如下:

import numpy as np


class Debug:
    def __init__(self):
        self.array1 = np.array([0, 1, 2])
        self.array2 = np.array([[0], [1], [2]])

    def mainProgram(self):
        print("The value of array1 is: ")
        print(self.array1)
        print("The shape of array1 is: ")
        print(self.array1.shape)
        print("The value of array2 is: ")
        print(self.array2)
        print("The shape of array2 is: ")
        print(self.array2.shape)


if __name__ == '__main__':
    main = Debug()
    main.mainProgram()
"""
The value of array1 is: 
[0 1 2]
The shape of array1 is: 
(3,)
The value of array2 is: 
[[0]
 [1]
 [2]]
The shape of array2 is: 
(3, 1)
"""

从上面的结果我们可以看到,一维横数组沿着横向排列,我们可以认定为x轴向,它的数组大小为(3,),一维列数组沿着纵向排列,我们可以认为是y轴方向,它的大小为(3, 1),我们可以从左向右,看出第二个参数代表的是横向上的参数个数,第一个参数代表的是纵向上的参数个数,因此我们可以将横向数组的大小(3,)理解为(,3)更为合适。

接下来我们研究一下二维数组,哪个参数对应的是横坐标,哪个参数对应的是纵坐标。
代码如下:

import numpy as np


class Debug:
    def __init__(self):
        self.array1 = np.ones((2, 3))
        self.array2 = np.ones((3, 2))

    def mainProgram(self):
        print("The value of array1 is: ")
        print(self.array1)
         print("The shape of array1 is: ")
        print(self.array1.shape)
        print("The value of array2 is: ")
        print(self.array2)
        print("The shape of array2 is: ")
        print(self.array2.shape)


if __name__ == '__main__':
    main = Debug()
    main.mainProgram()

"""
The value of array1 is: 
[[1. 1. 1.]
 [1. 1. 1.]]
The shape of array1 is: 
(2, 3)
The value of array2 is: 
[[1. 1.]
 [1. 1.]
 [1. 1.]]
The shape of array2 is: 
(3, 2)
"""

从上面的结果我们可以看出,从左向右,第一个参数代表的是(row), 第二个参数代表的是列(column)。我们知道numpy中默认的是笛卡尔坐标系,所以横向为x,纵向为y,具体的请看坐标系(超链接点击跳转查看)。所以对self.array1来说,定义时输入的数组大小的(2, 3)代表沿着x轴拥有3个值,沿着y轴拥有2个值。对比上述得到的结果与我们在一维情况中推断得到的结果,证明我们的理解是正确的。

接着我们讨论三维的情况:代码如下:

import numpy as np


class Debug:
    def __init__(self):
        self.array1 = np.ones((2, 3, 4))

    def mainProgram(self):
        print("The value of array1 is: ")
        print(self.array1)
        print("The shape of array1 is: ")
        print(self.array1.shape)


if __name__ == '__main__':
    main = Debug()
    main.mainProgram()


"""
The value of array1 is: 
[[[1. 1. 1. 1.]
  [1. 1. 1. 1.]
  [1. 1. 1. 1.]]

 [[1. 1. 1. 1.]
  [1. 1. 1. 1.]
  [1. 1. 1. 1.]]]
The shape of array1 is: 
(2, 3, 4)
"""

不难发现,沿着x轴方向拥有4个值,沿着y轴方向拥有3个值,沿着z轴方向拥有2个值。

综上所述,在numpy数组中,定义三维数组时,从左向右, 第一个参数为z轴,第二个参数为y轴,第三个参数为x轴,即(z, y, x)。 对于各个坐标轴在空间中的朝向问题,建议阅读numpy数组坐标轴。之后我们会进一步探讨numpy模块中的其他与坐标轴相关的函数。

到此这篇关于numpy数组坐标轴问题解决的文章就介绍到这了,更多相关numpy数组坐标轴内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

阅读原文内容投诉

免责声明:

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

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

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯