python输入数组可以判断个数和类型_一起学opencv-python二(numpy数组基本操作学习)...

本文深入探讨numpy数组的操作,包括数据类型的选取、数组创建与形状调整、属性如shape和size的使用。文章通过实例展示了如何避免数据溢出和畸变,以及numpy与MATLAB的相似之处。此外,还介绍了数组的切片、索引和特殊函数如arange、linspace的功能。
摘要由CSDN通过智能技术生成

参考了https://www.yiibai.com/numpy/numpy_ndarray_object.html。其实opencv对像素进行运算用的就是numpy,它的MATLAB真的很像。学会了numpy,后面像素运算就完全看得懂了,或者说必须会numpy,否则的话,没办法往下学,那么废话不多说,直接开始吧。

下图中可以看到,二维数组的单维是可以元素个数不一样的,比如说下图中的a=np.array([1,2],[3]),只不过打印出来显示的不是矩阵的形式了,从这个角度来看,多维数组要比矩阵灵活一些。

中括号一点要加上,虽然有的时候用小括号或者大括号似乎没问题,但是时不时又会有问题。

还是用中括号吧,下图是我的尝试。

最小维度是2,所以强制加上了一层中括号,必须变成两层以上的中括号,complex是复数的意思,和MATLAB一样,为了和电流i区分,虚数单位用的是j。

数据类型

这些数据类型不是无意义的,如果选错数据类型的话,数据是可能会丢失或者畸变的。

下面是一些例子。

如果参数只有一个可以不加中括号,如果dtype是uint8,数据是255,那还行,因为uint8的范围就是0-255,但是如果是256,就溢出了,溢出的位就被舍弃了,所以就是0,因为256是100000000,dtype改成int16就没有问题了。dtype是整数的时候,如果输入的数据有小数,小数点后面的直接截断舍弃,不是四舍五入。如果输入的是负数,比如-255,我们用uint8存,为什么打印的是1呢?-255需要一个符号位,所以需要16位来存,而计算机里存的都是补码,所以-255是000000011111111,补码是1111111000000001,而我们的dtype是uint8,所以是舍弃了高八位,就是00000001,也就是1。

我也不知道这个端记号是干嘛用的,查了很多资料都没看到。

这个确实类似一种结构体&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值