一.添加数组元组
-
append()函数
描述
- 可以在数组的末尾添加元素
用法和参数
- numpy.append(arr, values, axis=None)
- arr:必选,要添加元素的数组
- values:必选,要添加的数组元素
- axis:可选,默认值为None。当省略该参数时,表示在数组的末尾添加元素,且返回一个一维数组;当axis的值为0时,表示在行方向上添加元素;当axis的值为1时,表示在列方向上添加元素
实例
import numpy as np arr = np.array( [ [1, 2, 3], [4, 5, 6] ] ) arr1 = np.append(arr, [[7, 8, 9]]) print(arr1) ''' [1 2 3 4 5 6 7 8 9] ''' arr2 = np.append(arr, [[7, 8, 9]], axis=0) print(arr2) ''' [[1 2 3] [4 5 6] [7 8 9]] ''' arr3 = np.append(arr, [[7, 8], [9, 10]], axis=1) print(arr3) ''' [[ 1 2 3 7 8] [ 4 5 6 9 10]] '''
-
insert()函数
描述
- 在数组的指定位置插入元素
用法和参数
- arr:必选,要插入元素的数组
- obj:必选,数组的索引值,表示插入元素的位置
- values:必选,要插入的元素
- axis:可选,当省略该参数时,会先将数组展开成一个一维数组,再在一维数组的指定位置插入元素;当axis的值为0时,表示在行方向上的指定位置插入元素;当axis的值为1时,表示在列方向上的指定位置插入元素
实例
import numpy as np arr = np.array( [ [1, 2], [3, 4], [5, 6] ] ) # 在数组索引为1的位置插入元素[7, 8] arr1 = np.insert(arr, 1, [7, 8]) print(arr1) ''' [1 7 8 2 3 4 5 6] ''' # 在数组索引为1的位置插入[7, 8]元素 arr2 = np.insert(arr, 1, [7, 8], axis=0) print(arr2) ''' [[1 2] [7 8] [3 4] [5 6]] ''' # 在数组索引为1的位置插入[7, 8, 9]元素 arr3 = np.insert(arr, 1, [7, 8, 9], axis=1) print(arr3) ''' [[1 7 2] [3 8 4] [5 9 6]] '''
二.删除数组的元素
描述
- 将数组中指定位置的元素删除
方法和参数
- numpy.delete(arr, obj, axis)
- arr:输入数组
- obj:可以被切片,整数或者数组,表明要从输入数组删除的子数组
- axis:沿着它删除给定子数组的轴,如果未提供,则输入数组会被展开
实例
import numpy as np
arr = np.array(
[
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
)
# 删除数组的第3个元素
arr1 = np.delete(arr, 2)
# 删除数组第3行的元素
arr2 = np.delete(arr, 2, axis=0)
# 删除数组第3列的元素
arr3 = np.delete(arr, 2, axis=1)
print(arr1)
'''
[1 2 4 5 6 7 8 9]
'''
print(arr2)
'''
[[1 2 3]
[4 5 6]]
'''
print(arr3)
'''
[[1 2]
[4 5]
[7 8]]
'''
三.处理数组的缺失值
描述
- 标记数组中缺失值的位置
用法和参数
- numpy.isnan(arr)
- arr:数组
实例
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, np.nan, 8, 9])
print(arr) # [ 1. 2. 3. 4. 5. 6. nan 8. 9.]
# 将数组中的空值的位置填充为True,其余为False
print(np.isnan(arr)) # [False False False False False False True False False]
# 将数组中的空值替换为0
arr[np.isnan(arr)] = 0
print(arr) # [1. 2. 3. 4. 5. 6. 0. 8. 9.]
四.处理数组的重复值
描述
- 去处数组中的重复元素,之后按照数组中的元素从小到大排列
用法
- numpy.unique(arr, return_index, return_inverse, return_counts)
- arr:输入数组,如果不是一维数组则会展开
- return_index:如果为true,返回新列表元素在旧列表中的位置(下标),并以列表形式储
- return_inverse:如果为true,返回旧列表元素在新列表中的位置(下标),并以列表形式储
- return_counts:如果为true,返回去重数组中的元素在原数组中的出现次数
实例
import numpy as np
arr = np.array(
[8, 4, 2, 3, 5, 2, 5, 6, 7, 8, 9]
)
# 对数组进行去重处理
arr1 = np.unique(arr)
print(arr1) # [2 3 4 5 6 7 8 9]
# 查看去重重组数组中的元素在原数组中出现的位置
arr2, arr3 = np.unique(arr, return_counts=True)
print(arr2) # [2 3 4 5 6 7 8 9]
print(arr3) # [2 1 1 2 1 1 2 1]
五.拼接数组
描述
- concatenate:用于沿指定轴连接相同形状的两个或多个数组
- hstack:水平堆叠生成数组
- vstack:垂直堆叠生成数组
用法和参数
- numpy.concatenate((a1, a2, …), axis)
- a1, a2, …:相同类型的数组
- axis:沿着它连接数组的轴,默认为 0
- numpy.hstack(arrays)
- arrays:相同形状的数组序列
- numpy.vstatck(arrays)
- arrays:相同形状的数组序列
实例
import numpy as np
arr1 = np.array(
[
[1, 2, 3],
[4, 5, 6]
]
)
arr2 = np.array(
[
[7, 8, 9],
[10, 11, 12]
]
)
arr3 = np.concatenate((arr1, arr2), axis=0)
print(arr3)
'''
[[ 1 2 3]
[ 4 5 6]
[ 7 8 9]
[10 11 12]]
'''
arr4 = np.concatenate((arr1, arr2), axis=1)
print(arr4)
'''
[[ 1 2 3 7 8 9]
[ 4 5 6 10 11 12]]
'''
arr5 = np.hstack((arr1, arr2))
print(arr5)
'''
[[ 1 2 3 7 8 9]
[ 4 5 6 10 11 12]]
'''
arr6 = np.vstack((arr1, arr2))
print(arr6)
'''
[[ 1 2 3]
[ 4 5 6]
[ 7 8 9]
[10 11 12]]
'''
六.拆分数组
描述
- split:沿特定的轴将数组分割为子数组
- hsplit:水平分割数组,通过指定要返回的相同形状的数组数量来拆分原数组。
- vsplit:垂直分割数组,通过指定要返回的相同形状的数组数量来拆分原数组。
用法和参数
- numpy.split(ary, indices_or_sections, axis)
- ary:被分割的数组
- indices_or_sections:如果是一个整数,就用该数平均切分,如果是一个数组,为沿轴切分的位置(左开右闭)
- axis:设置沿着哪个方向进行切分,默认为 0,横向切分,即水平方向。为 1 时,纵向切分,即竖直方向。
- numpy.hsplit(ary, indices_or_sections)
- ary:被分割的数组
- indices_or_sections:如果是一个整数,就用该数平均切分,如果是一个数组,为沿轴切分的位置(左开右闭)
- numpy.vsplit(ary, indices_or_sections)
- ary:被分割的数组
- indices_or_sections:如果是一个整数,就用该数平均切分,如果是一个数组,为沿轴切分的位置(左开右闭)
实例
import numpy as np
arr1 = np.array(
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
)
arr2 = np.array(
[
[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12],
[13, 14, 15, 16]
]
)
arr3 = np.split(arr1, 2)
arr4 = np.split(arr1, [2, 4])
arr5 = np.hsplit(arr2, 2)
arr6 = np.vsplit(arr2, 2)
print(arr1)
'''
[ 1 2 3 4 5 6 7 8 9 10 11 12]
'''
print(arr2)
'''
[[ 1 2 3 4]
[ 5 6 7 8]
[ 9 10 11 12]
[13 14 15 16]]
'''
print(arr3)
'''
[array([1, 2, 3, 4, 5, 6]), array([ 7, 8, 9, 10, 11, 12])]
'''
print(arr4)
'''
[array([1, 2]), array([3, 4]), array([ 5, 6, 7, 8, 9, 10, 11, 12])]
'''