OpenCV:数组矩阵
ndarray对象
def array(p_object, dtype=None, *args, **kwargs):
a=np.array([1,2,3],ndmin=2)
a=np.array([1,2,3],dtype=complex)
NumPy数据类型
名称 | 描述 |
---|---|
bool_ | 布尔型数据类型(True 或者 False) |
int_ | 默认的整数类型(类似于 C 语言中的 long,int32 或 int64) |
intc | 与 C 的 int 类型一样,一般是 int32 或 int 64 |
intp | 用于索引的整数类型(类似于 C 的 ssize_t,一般情况下仍然是 int32 或 int64) |
int8 | 字节(-128 to 127) |
int16 | 整数(-32768 to 32767) |
int32 | 整数(-2147483648 to 2147483647) |
int64 | 整数(-9223372036854775808 to 9223372036854775807) |
uint8 | 无符号整数(0 to 255) |
uint16 | 无符号整数(0 to 65535) |
uint32 | 无符号整数(0 to 4294967295) |
uint64 | 无符号整数(0 to 18446744073709551615) |
float_ | float64 类型的简写 |
float16 | 半精度浮点数,包括:1 个符号位,5 个指数位,10 个尾数位 |
float32 | 单精度浮点数,包括:1 个符号位,8 个指数位,23 个尾数位 |
float64 | 双精度浮点数,包括:1 个符号位,11 个指数位,52 个尾数位 |
complex_ | complex128 类型的简写,即 128 位复数 |
complex64 | 复数,表示双 32 位浮点数(实数部分和虚数部分) |
complex128 | 复数,表示双 64 位浮点数(实数部分和虚数部分) |
numpy 的数值类型实际上是 dtype 对象的实例,并对应唯一的字符,包括 np.bool_,np.int32,np.float32,等等。
新建数组
x=np.empty([3],dtype=int)
print(x)
为随机值,未初始化
x=np.zeros([3,2],dtype=int)
print(x)
x=np.ones([3,2],dtype=int)
print(x)
从已有的数组创建数组
import numpy as np
x=[[1,2,3],[2,3,2]]
a=np.asarray(x)
print(a.shape)
import numpy as np
str=b'hello'
a=np.frombuffer(str,dtype='S1')
print(a)
import numpy as np
list=range(20)
it=iter(list)
x=np.fromiter(it,dtype=int)
print(x)
从数值范围创建数组
x=np.arange(12,dtype=float)
print(x)
import numpy as np
x=np.linspace(0,9,10,dtype=int)
print(x)
import numpy as np
x=np.logspace(0,9,10,base=2)
print(x)
切片与索引
import numpy as np
x=np.arange(15)
a=slice(2,10,3)
print(x[a])
import numpy as np
x=np.arange(15)
a=x[2:12:3]
print(a)
import numpy as np
x=np.array([[1,2,3],[4,5,6],[7,8,9]])
print(x[...,1])#第二列
print(x[1,...])#第二行
print(x[...,1:])#第二列及以下
高级索引
整数数组索引
import numpy as np
#获取(0,0),(1,1),(2,0)
x=np.array([[1,2],[3,4],[5,6]])
y=x[[0,1,2],[0,1,0]]
print(y)
/*
[1 4 5]
*/
布尔索引
import numpy as np
x=np.arange(1,50)
print(x[x>10])
/*
[11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49]
*/
花式索引
import numpy as np
x=np.arange(32).reshape(4,8)
print(x[[0,2,1]])
/*
[[ 0 1 2 3 4 5 6 7]
[16 17 18 19 20 21 22 23]
[ 8 9 10 11 12 13 14 15]]
*/
迭代数组
迭代对象nditer
import numpy as np
x=np.arange(6).reshape(3,2)
for i in np.nditer(x):
print(i,end=",")
控制遍历顺序
import numpy as np
x=np.arange(6).reshape(3,2)
for i in np.nditer(x,order='F'):
print(i,end=",")
/*
0,2,4,1,3,5,
*/
import numpy as np
x=np.arange(6).reshape(3,2)
for i in np.nditer(x,order='C'):
print(i,end=",")
/*
0,1,2,3,4,5,
*/
修改数组中元素的值
import numpy as np
x=np.arange(0,60,5).reshape(3,4)
print(x)
for i in np.nditer(x,op_flags=['readwrite']):
i[...]=2*i
print(x)
使用外部循环
import numpy as np
x=np.arange(0,60,5).reshape(3,4)
for i in np.nditer(x,flags=['external_loop'],order='F'):
print(i,end=',')
/*
[ 0 20 40],[ 5 25 45],[10 30 50],[15 35 55],
*/
广播迭代
import numpy as np
x=np.arange(0,60,5).reshape(3,4)
b=np.array([1,2,3,4],dtype=int)
for i,j in np.nditer([x,b]):
print(i,j)
数组操作
修改数组形状
import numpy as np
x=np.arange(0,60,5).reshape(3,4)
print(x)
for j in x.flat:
print(j,end=" ")
反转数组
import numpy as np
x=np.arange(0,60,5).reshape(3,4)
print(np.transpose(x))
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhfibghj
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01