numpy数组坐标轴问题解决
作者:勤奋的大熊猫 发布时间:2022-10-23 02:48:12
不知道大家有没有一种感觉,每次当使用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模块中的其他与坐标轴相关的函数。
来源:https://blog.csdn.net/u011699626/article/details/108999206
猜你喜欢
- 常用功能 mean(data)mean(data)用于求给定序列或者迭代器的算术平均数。import statisticsexample_l
- 光学元件类平面反射镜是一种极为简单的模型,因为我们只需要考虑一个平面即可。但是除此之外的其他光学元件,可能会变得有些复杂:我们必须考虑光在入
- 本文实例讲述了python和bash统计CPU利用率的方法。分享给大家供大家参考。具体如下:开始的时候写了一个 bash 的实现;因为最近也
- 原图矫正后我新建了个jz的文件夹放相机矫正所需要拍摄的图片,如下:共12张 # coding:utf-8import cv2imp
- 判断一个 list 是否为空传统的方式:if len(mylist): # Do something with my liste
- 适合各种浏览器的js拖动层,ie,firefox等,调用方便!<!DOCTYPE HTML PUBLIC "-//W3C//
- 环境搭建下载安 * eego,bee1.开启gomod设置代理go env -w GO111MODULE=ongo env -w GOPROX
- 倒排索引一 倒排索引是什么倒排索引源于实际应用中需要根据属性的值来查找记录,这种索引表中的每一个项都包括一个属性值和具有该属性值的各记录的地
- 故事的开始:.count()假设你有一个Notification Model类,保存的主要是所有的站内通知:class Notificati
- 字典对象的核心是散列表。散列表是一个稀疏数组(总是有空白元素的数组),数组的每个单元叫做 bucket。每个 bucket 有两部分:一个是
- 本文实例讲述了python在控制台输出进度条的方法。分享给大家供大家参考。具体实现方法如下:进度条效果如下所示:|#############
- Python docx module for Word or WPS processing本文是通过docx把word中的表格中的某些已填好
- 在不使用matlab的情况下,可以选择用python来实现自动控制理论有关系统打时域分析和频率域分析等,安装的package是python-
- 1、在mysql 中建立一个数据库 test1 语句:create database test1 2、创建表examinfo create
- Python 装饰器深入探讨在 Python 中,装饰器提供了一种简洁的方式,用来修改或增强函数和类的行为。装饰器在语法上表现为一个前置于函
- SPAN 和 DIV 的区别在于,DIV(division)是一个块级元素,可以包含段落、标题、表格,乃至诸如章节、摘要和备注等。而SPAN
- 【添加事件机制】 addEventListener 和 attachEvent[W3C]addEvent
- 匹配中文字符的正则表达式: [\u4e00-\u9fa5]匹配双字节字符(包括汉字在内):[^\x00-\xff]应用:计算字符串的长度(一
- 本文实例讲述了Python函数的定义和作用域。分享给大家供大家参考,具体如下:定义函数默认参数: 可以向函数中添加默认参数,以便为在函数调用
- 以前我在mysql中分页都是用的 limit 100000,20这样的方式,我相信你也是吧,但是要提高效率,让分页的代码效率更高一些,更快一