Python
数据挖掘基础
Numpy
当我们想要遍历一个多维数组的时候,如果通过不停的使用循环去遍历,这会让我们的代码可读性与性能都变得很差,numpy提供了一个函数nditer,以帮助我们遍历数组。nditer的入参是一个数组,返回值是一个可迭代对象。nditer 默认会优先遍历行序,通过order参数可以使其优先遍历列序。
numpy.nditernditer返回一个迭代器对象
nditer默认优先遍历行序
nditer默认返回0维数组
在实际问题的处理之中,我们经常需要改变数组的形状,以转换为更为适合处理的数据结构。reshape用于在不改变数组数据的条件下,修改数组的形状,我们在快速创建矩阵的适合已经多次使用过该函数。下面再来简单回顾一下。
reshapenumpy.reshape(arr, newshape, order=’C’)
arr 是需要改变形状的数组
newshape 是新数组的维度属性,新数组的维度属性应与原数组兼容,例如行列相等
order 是指定按行序或列序改变数组,’C’ — 按行,’F’ — 按列,’A’ — 原顺序,’k’ — 元素在内存中的出现顺序。其默认值为’C’。
ndarray.T,该方法会将数组进行行列转换
import numpy as nparray_2d = np.arange(0,10).reshape(2,5)print(array_2d)print(array_2d.T)
数据切割,顾名思义是将数组切割为多个数组。关于数组切割,numpy提供了一个强大的函数split,split可以指定按照横向或则竖向切割数组。
numpy.split(ary, indices_or_sections, axis)
ary 是需要切割数组
indices_or_sections 指定需要切割的份数
axis 是指定数组的切割方向,默认为0,横向切割, axis=1时为竖向切割
numpy提供了两个向数组中添加元素的方法,分别时append方法和insert方法。append方法会将元素添加至原数组末尾,insert方法会将元素插入到指定索引位置。下面分别来练习一下两种方法的使用。
appendnumpy.append(arr, values, axis=None)
append默认返回一个一维数组
arr为需要执行插入操作的数组
values为需要插入的值
axis指定插入方式 axis=0为按行插入,axis=1为按列插入
当指定axis时 插入的数组维度必须与原数组相等
import numpy as nparray_2d = np.arange(0,10).reshape(2,5)print(array_2d)#向数组中插入元素new_array_1d = np.append(array_2d,[1,2,3])print(new_array_1d)#按行序向数组中插入元素# 注意:当指定行列时,输入数组的维度必须与原数组相同new_array_2d = np.append(array_2d,[[10,11,12,13,14]],axis=0)print(new_array_2d)#按列序向数组中插入元素np.append(array_2d,[[5],[10]],axis=1)print(array_2d)
numpy.insert(arr, obj, values, axis)
insert默认返回一个一维数组
arr 需要插入元素的数组
obj 需要插入的索引位置
values 需要插入的值
axis 指定插入方式,axis=0为按行插入,axis=1为按列插入
怎么样,通过numpy我们可以很方便的操作复杂的数组,下面来看一下本节最后一个内容,数组中元素的删除delete,delete与insert,append一样它们不会改变元素组,而是会返回一个新数组,下面来练习一下delete的使用。
deletenumpy.delete(arr, obj, axis)
arr 是需要执行删除操作的数组
obj 是需要删除元素的索引位置
axis 是指定行序列序,axis=0为行序,axis=1为列序,默认是将数组展开为1维数组
import numpy as nparray_2d = np.arange(0,10).reshape(2,5)print(array_2d)# 将数组展开为一维数组后删除指定索引位置元素,并返回一维数组new_array_1d = np.delete(array_2d,3)print(new_array_1d)# 删除指定行序位置的元素new_array_2d = np.delete(array_2d,0,axis=0)print(new_array_2d)# 删除指定列序位置的元素new_array_2d = np.delete(array_2d,1,axis=1)print(new_array_2d)
关于numpy的基础即将结束,下一章将会讲解numpy的统计、排序与筛选,在这之后便会进入下一张pandas基础的讲解。
转载请注明出处
联系客服