目录
数组的其他函数
编辑
numpy.resize()
numpy.append()
numpy.insert()
numpy.delete()¶
数组的其他函数
主要有以下方法:
numpy.resize()
numpy.resize(arr,shape)
numpy.resize()返回指定形状的新数组。
numpy.resize(arr,shape)和ndarray.resize(shape, refcheck=False)区别:
numpy.resize(arr,shape),有返回值,返回复制内容.如果维度不够,会使用原数组数据补齐
ndarray.resize(shape, refcheck=False),修改原数组,不会返回数据,如果维度不够,会使用0补齐
注: reshape只能设置规定内的元素,假如超出或者减少会报错而 resize不会报错支持超出或者减少元素的操作
import numpy as np
a=np.array([[1,2,3],[4,5,6]])
print(a)
#数组的形状
print(a.shape)
b=np.resize(a,(3,2))
c=np.resize(a,(3,3))
d=np.resize(a,(2,2))
print(b)
print(c)
d
# 设置refcheck=False 后,不足的数值由0补上
a.resize((3,3),refcheck=False)
a
numpy.append()
在数组的末尾添加值,默认返回一个一维数组。
numpy. append (arr, values,axis=None)
参数说明:
. arr:输入的数组;
. values:向arr 数组中添加的值,需要和arr 数组的形状保持一致;
· axis:默认为None,返回的是一维数组;
当axis =0时,追加的值会被添加到行,而列数保持不变,若axis=1则与其恰好相反。
a=np.array([[1,2,3],[4,5,6]])
#向数组a添加元素
b=np.append(a,[[7,8,9]])
print(b)
print(a)
#沿0轴添加元素
print(np.append(a,[[7,8,9]],axis=0))
a.shape
print(a)
#沿1轴添加元素
print(np.append(a,[[7,8,9],[10,11,12]],axis=1))
numpy.insert()
表示沿指定的轴,在给定索引值的前一个位置插入相应的值,如果没有提供轴,则输入数组被展开为一维数组。
numpy.insert(arr,obj,values,axis)
参数说明:
· arr:要输入的数组
. obj:表示索引值,在该索引值之前插入values值;
. values:要插入的值;
. axis:指定的轴,如果未提供,则输入数组会被展开为一维数组
a=np.array([[1,2],[3,4],[5,6]])
print(a,a.shape)
#不提供axis的情况下,会将数组展开
print(np.insert(a,3,[11,12]))
print(a)
#沿0轴垂直方向插入元素
print(np.insert(a,1,[11,2],axis=0))
print(a)
#沿1轴水平方向插入元素
print(np.insert(a,1,1,axis=1))
numpy.delete()¶
该方法表示从输入数组中删除指定的子数组,并返回一个新数组。它与insert()函数相似,若不提供 axis参数,则输入数组被展开为一维数组。numpy.delete(arr,obj,axis)参数说明:
. arr:要输入的数组;
. obj:整数或者整数数组,表示要被删除数组元素或者子数组;.
axis:沿着哪条轴删除子数组。
a=np.arange(12).reshape(3,4)
print(a)
print('--------------------------------')
#不提供axis的情况
print(np.delete(a,5))
print('--------------------------------')
#删除第二列
b=np.delete(a,1,axis=1)
print(b)
print('---------------------------------')
#删除多行
print(np.delete(a,[1,2,],axis=0))
np.s_[1:4] #默认切片操作
#横向输出一个数组
np.r_[1:4]
#纵向输出一个数组
np.c_[1:4]