修改数组项目
NumPy 提供了不少修改多维数组项目的方法,这篇教学将会介绍 NumPy 里添加、删除、修改数组项目的基本方法。
本篇使用的 Python 版本为 3.7.12,所有范例可使用 Google Colab 实作,不用安装任何软件 ( 参考:使用 Google Colab )
修改数组项目的方法
NumPy 有下列几种修改数组项目的方法:
| 方法 | 参数 | 说明 |
|---|---|---|
| numpy.resize() | arr, shape | 改变数组尺寸大小。 |
| numpy.append() | arr, item | 添加项目到数组最后面,返回一个一维数组。 |
| numpy.insert() | arr, index, item | 添加项目到数组指定的位置,返回一个一维数组。 |
| numpy.delete() | arr, index | 删除某个项目,返回一个一维数组。 |
| numpy.unique() | arr | 取出不重复的项目,返回一个一维数组。 |
numpy.resize()
numpy.resize() 会将原本的数组调整为新的尺寸,运作原理是先把原本数组的元素摊平,再依序放入新尺寸的数组中,若新尺寸大于原本的项目数量,就依序重复放入,如果新尺寸小于原本的数量,就会舍弃超过的项目。
import numpy as np
a = np.array([[1,1,1],[2,2,2]])
b = np.resize(a, (3,2))
print(b)
'''
[[1 1]
[1 2]
[2 2]]
'''
c = np.resize(a, (5,5))
print(c)
'''
[[1 1 1 2 2]
[2 1 1 1 2]
[2 2 1 1 1]
[2 2 2 1 1]
[1 2 2 2 1]]
'''
d = np.resize(a, (2,2))
print(d)
'''
[[1 1]
[1 2]]
'''
numpy.append()
numpy.append() 会将项目添加到数组最后面,并返回一个一维数组,第一参数为 arr 原本的数组,第二个参数为要加入的内容。
import numpy as np
a = np.array([[1,1,1],[2,2,2]])
b = np.append(a, 1)
c = np.append(a, [3,3,3])
print(b) # [1 1 1 2 2 2 1]
print(c) # [1 1 1 2 2 2 3 3 3]
如果加入的内容数量和原本的数组相同,可以设定第三个参数 ( 默认 None ) 为 0 ( 行 ) 或 1 ( 列 ),指定数据插入的维度。
import numpy as np
a = np.array([[1,1,1],[2,2,2]])
b = np.append(a, [[3,3,3],[4,4,4]],1)
print(b)
'''
[[1 1 1 3 3 3]
[2 2 2 4 4 4]]
'''
c = np.append(a, [[3,3,3],[4,4,4]],0)
print(c)
'''
[[1 1 1]
[2 2 2]
[3 3 3]
[4 4 4]]
'''
numpy.insert()
numpy.insert() 会将项目添加到数组指定的位置,并返回一个一维数组,第一参数为 arr 原本的数组,第二个参数为加入的位置,第三个参数是要加入的内容,如果设定第四个参数 ( 默认 None ) 为 0 ( 行 ) 或 1 ( 列 ),则可以指定数据插入的维度。
import numpy as np
a = np.array([[1,1],[2,2],[3,3]])
b = np.insert(a, 1, [4,4])
c = np.insert(a, 2, [4,4])
print(b) # [1 4 4 1 2 2 3 3]
print(c) # [1 1 4 4 2 2 3 3]
d = np.insert(a, 2, [4,4], 0)
print(d)
'''
[[1 1]
[2 2]
[4 4]
[3 3]]
'''
numpy.delete()
numpy.delete() 会将项目删除数组中指定位置的项目,并返回一个一维数组,第一参数为 arr 原本的数组,第二个参数为要删除的项目位置,如果设定第三个参数 ( 默认 None ) 为 0 ( 行 ) 或 1 ( 列 ),则可以指定数据插入的维度。
import numpy as np
a = np.array([[1,2],[3,4],[5,6]])
b = np.delete(a, 1)
c = np.delete(a, 2)
print(b) # [1 3 4 5 6]
print(c) # [1 2 4 5 6]
d = np.delete(a, 2, 0)
print(d)
'''
[[1 2]
[3 4]]
'''
numpy.unique()
numpy.unique() 会取出不重复的项目,返回一个一维数组,第一个参数 arr 为原本的数组,另外还有三个默认为 False 的参数 。
| 参数 | 说明 |
|---|---|
| return_index | 如果为 True,返回取出的元素在原来列表中的位置。 |
| eturn_inverse | 如果为 True,返回原本的元素在新列表中的位置。 |
| return_counts | 如果为 True,返回取出的项目在原本列表中出现的次数。 |
import numpy as np
a = np.array([[1,1],[2,2],[3,3]])
b = np.unique(a)
c = np.unique(a, return_index=True)
d = np.unique(a, return_inverse=True)
e = np.unique(a, return_counts=True)
print(b) # [1 2 3]
print(c) # (array([1, 2, 3]), array([0, 2, 4]))
print(d) # (array([1, 2, 3]), array([0, 0, 1, 1, 2, 2]))
print(e) # (array([1, 2, 3]), array([2, 2, 2]))
微信扫码关注
抖音扫码关注