我正在参与掘金创作者训练营第6期,点击了解活动详情
1. 数组的索引、切片
一维,二维、三维的数组如何索引
- 直接通过中括号就可以进行索引,切片,与python语法很相似
- 对象[:, :]中括号中的参数表示先行后列
- 举例:二维数组切片
A[0, 0:3]- 获取二维数组中,第一个一维数组数组中,第0-3个元素
2. 数组形状改变
ndarray.reshape(shape, order)
- 返回一个具有相同数据域,但shape不一样的视图
- 行与列不进行互换
- 注意:这个函数返回了一个新数组,原本数组不改变
- 相当于把原数组所有元素排成一行,然后按照所需形状,一个个往里面填充
- 注意中括号中可以使用-1参数,表示某行或者某列待定
代码演示:将原数组a,维度(2,3)。重新变形成b,维度为(1,6)。c数组是将原数组变形成2列,而行数-1表示行数进行相应填充。
import numpy as np
a = np.array([[1, 2, 3], [4, 5, 6]])
print(a)
b = a.reshape([1, 6])
print(b)
c = a.reshape([-1, 2])
print(c)
运行结果如下图所示:注意,一个参数使用-1的情况下,另一个参数需要被整除,否则会报错。
ndarray.resize(new_shape)
- 修改数组本身的形状(需要保持元素个数前后相同)
- 行与列不进行互换
- 注意:这个函数对本身的数组进行了修改
ndarray.T
- 数组的转置
- 将数组的行与列进行了互换
代码演示:T转置更像是一个属性,通过
数组.T的形似查看数组的转置。
import numpy as np
a = np.array([[1, 2, 3], [4, 5, 6]])
print(a)
print(a.T)
运行结果如下图所示:输出的第一个数组为原数组,第二个数组为转置后的数组
3. 数组类型修改
ndarray.astype(type)
- 返回修改了类型之后的数组
- 例如
A.astype(np.int32):表示把数组类型改为int32
ndarray.tostring([order])或者ndarray.tobytes([order])
- 构造包含数组中原始数据字节的Python字节
- 转化成字符串类型
4. 数组去重
np.unique()
- 括号内传入对应的对象
- 就可以把重复的元素去掉
- 但是返回的是一个新的对象,可以用变量来接收
代码演示:将数组去重处理,输出去重结果。
import numpy as np
a = np.array([[1, 2, 3], [4, 5, 6], [1,1,2]])
a1 = np.unique(a)
print(a1)
运行结果:将原本的[[1, 2, 3], [4, 5, 6], [1,1,2]]数组,去掉重复多余的元素,然后排成一维数组[1 2 3 4 5 6]