🌈个人主页:羽晨同学
💫个人格言:“成为自己未来的主人~”
Numpy是python语言的一个拓展程序库,支持大量的维度数组与矩阵计算,此外也针对数组运算提供大量的数学函数库
NumPy支持的数据类型比Python内置的类型要多得多,基本上可以和C语言的数据类型对应上,其中部分类型对应为Python内置的类型。
Numpy最重要的一个特点是其N维数组对象ndarray,它是一系列同类型数据的集合,以0下标为开始进行集合中元素的索引。
nadarray对象是用于存放同类型元素的多维数组。
nadarray中的每个元素在内存中都有相同存储大小的区域。
NumPy数组操作
迭代数组
import numpy as np
a=np.arange(0,60,5)
a=a.reshape(3,4)
print(a)
print('\n')
for x in np.nditer(a,order='C'):
print(x,end=",")
print('\n')
for x in np.nditer(a,order='F'):
print(x,end=",")
这个就是数组的遍历,需要注意的是C格式的时候为行遍历,F格式的时候为列遍历。
NumPy的广播机制
- 数组拥有相同形状
- 当前维度的值相等
- 当前维度的值有一个是1
a=np.array([[1,2,3],[4,5,6]])
b=np.array([1,0,0])
c=a+b
print(c)
修改数组形状
reshape
可以在不改变数据的条件下修改形状
a=np.arange(8).reshape(2,4)
print(a)
print('\n')
print('展开的数组:')
print(a.flatten())
print('\n')
print('以F的风格顺序展开的数组:')
print(a.flatten(order='F'))
flatten的作用是展开,将数组进行展开。
翻转数组
a=np.arange(8).reshape(2,4)
print('原数组:')
print(a)
print('\n')
print('对换数组:')
print(np.transpose(a))
a=np.arange(8).reshape(2,2,2)
print('原数组:')
print(a)
print('\n')
print('调用swapaxes后的数组:')
print(np.swapaxes(a,2,0))
这里面涉及到了两个函数,一个是transpose,这个一般交换所有的维度
另外一个是swapaxes,这个可以选择两个维度进行交换
修改数组维度
x=np.array([[1,2],[3,4]])
print('数组x:')
print(x)
print('\n')
y=np.expand_dims(x,axis=0)
print(y)
print(x.shape,y.shape)
x=np.arange(9).reshape(1,3,3)
print('数组x: ')
print(x)
print('\n')
y=np.squeeze(x)
print('数组y: ')
print(y)
print('\n')
print(x.shape,y.shape)
第一个函数(expand.dims)是增加维度的,第二个函数(squeeze)是删除维度的,默认删除为1的维度