操作ndarray元素:访问、删除、插入
程序员文章站
2022-03-23 14:00:43
...
本笔记整理自 udacity 课程,版权归 udacity 所有,仅作为学习交流,更多学习资源和信息请访问 Udacity
引入
import numpy as np
在此引入一次,下面直接使用 np
访问ndarray元素
x = np.array([1, 2, 3, 4, 5])
print()
print('x = ', x)
print()
print('This is First Element in x:', x[0])
print('This is Second Element in x:', x[1])
print('This is Fifth (Last) Element in x:', x[4])
print()
print('This is First Element in x:', x[-5])
print('This is Second Element in x:', x[-4])
print('This is Fifth (Last) Element in x:', x[-1])
输出:
x = [1 2 3 4 5]
This is First Element in x: 1
This is Second Element in x: 2
This is Fifth (Last) Element in x: 5
This is First Element in x: 1
This is Second Element in x: 2
This is Fifth (Last) Element in x: 5
- 在方括号
[ ]
中添加索引来访问元素。 - 可以使用正索引和负索引访问 ndarray 中的元素。
- 正索引表示从数组的开头访问元素,负索引表示从数组的末尾访问元素。
- 正索引从
0
开始,负索引从-1
开始。
修改ndarray元素
- 修改秩为 1 的 ndarray :
x = np.array([1, 2, 3, 4, 5])
print()
print('Original:\n x = ', x)
print()
x[3] = 20
print('Modified:\n x = ', x)
输出:
Original: x = [1 2 3 4 5]
Modified: x = [ 1 2 3 20 5]
- 修改秩为 2 的 ndarray
X = np.array([[1,2,3],[4,5,6],[7,8,9]])
print()
print('Original:\n X = \n', X)
print()
X[0,0] = 20
print('Modified:\n X = \n', X)
输出:
Original:
X =
[[1 2 3]
[4 5 6]
[7 8 9]]
Modified:
X =
[[20 2 3]
[ 4 5 6]
[ 7 8 9]]
删除ndarray元素
x = np.array([1, 2, 3, 4, 5])
Y = np.array([[1,2,3],[4,5,6],[7,8,9]])
print()
print('Original x = ', x)
x = np.delete(x, [0,4]) # 此处删除第一个和第五个(最后一个)元素
print()
print('Modified x = ', x)
print()
print('Original Y = \n', Y)
w = np.delete(Y, 0, axis=0) # 此处删除第一行的元素
v = np.delete(Y, [0,2], axis=1) # 此处删除第一列和第三列(最后一列)的元素
print()
print('w = \n', w)
print()
print('v = \n', v)
输出
Original x = [1 2 3 4 5]
Modified x = [2 3 4]
Original Y =
[[1 2 3]
[4 5 6]
[7 8 9]]
w =
[[4 5 6]
[7 8 9]]
v =
[[2]
[5]
[8]]
- 对于秩为 1 的 ndarray,不需要使用关键字
axis
。 - 对于秩为 2 的 ndarray,
axis = 0
表示选择行,axis = 1
表示选择列。
插入ndarray元素
-
使用
np.append(ndarray, elements, axis)
函数向 ndarray 中附加值x = np.array([1, 2, 3, 4, 5]) Y = np.array([[1,2,3],[4,5,6]]) print() print('Original x = ', x) x = np.append(x, 6) # 秩为1的ndarray,直接append print() print('x = ', x) x = np.append(x, [7,8]) # 秩为1的ndarray,也可通过列表一次添加多个 print() print('x = ', x) print() print('Original Y = \n', Y) v = np.append(Y, [[7,8,9]], axis=0) # 秩为2的ndarray,添加一行 q = np.append(Y,[[9],[10]], axis=1) # 秩为2的ndarray,添加一列; 当然也可添加两列 q = np.append(Y,[[9,99],[10,100]], axis=1) print() print('v = \n', v) print() print('q = \n', q)
输出:
Original x = [1 2 3 4 5] x = [1 2 3 4 5 6] x = [1 2 3 4 5 6 7 8] Original Y = [[1 2 3] [4 5 6]] v = [[1 2 3] [4 5 6] [7 8 9]] q = [[ 1 2 3 9] [ 4 5 6 10]]
- 该函数会将给定的元素列表沿着指定的轴附加到 ndarray 中。
- 当我们将行或列附加到秩为 2 的 ndarray 中时,行或列的形状必须正确,以与秩为 2 的 ndarray 的形状相符。
-
使用
np.insert(ndarray, index, elements, axis)
函数向 ndarray 中插入值x = np.array([1, 2, 5, 6, 7]) Y = np.array([[1,2,3],[7,8,9]]) print() print('Original x = ', x) x = np.insert(x,2,[3,4]) # 向秩为1的ndarray第三个元素前插入3和4 print() print('x = ', x) print() print('Original Y = \n', Y) w = np.insert(Y,1,[4,5,6],axis=0) # 向秩为2的ndarray第二行前,插入4,5,6 v = np.insert(Y,1,5, axis=1) # 向秩为2的ndarray前第二列前,插入5 print() print('w = \n', w) print() print('v = \n', v)
输出:
Original x = [1 2 5 6 7] x = [1 2 3 4 5 6 7] Original Y = [[1 2 3] [7 8 9]] w = [[1 2 3] [4 5 6] [7 8 9]] v = [[1 5 2 3] [7 5 8 9]]
此函数会将给定的元素列表沿着指定的轴插入到 ndarray 中,并放在给定的索引前面。
-
使用
np.vstack()
函数进行垂直堆叠,或使用np.hstack()
函数进行水平堆叠。x = np.array([1,2]) Y = np.array([[3,4],[5,6]]) print() print('x = ', x) print() print('Y = \n', Y) z = np.vstack((x,Y)) # 此处将x置于Y之上,形成新的ndarray w = np.hstack((Y,x.reshape(2,1))) # 此处将变形后的x置于Y的右侧,形成新的ndarray print() print('z = \n', z) print() print('w = \n', w)
输出:
x = [1 2] Y = [[3 4] [5 6]] z = [[1 2] [3 4] [5 6]] w = [[3 4 1] [5 6 2]]
上一篇: iOS应用新特性界面
下一篇: CDR模糊的图标怎么快速临摹出来?
推荐阅读
-
在ASP.NET 2.0中操作数据之十六:概述插入、更新和删除数据
-
在ASP.NET 2.0中操作数据之十七:研究插入、更新和删除的关联事件
-
FormView显示、更新、插入、删除数据库操作[ASP.NET源代码](一)
-
在ASP.NET 2.0中操作数据之四十七:用SqlDataSource控件插入、更新、删除数据
-
Java创建二叉搜索树,实现搜索,插入,删除的操作实例
-
java实现堆的操作方法(建堆,插入,删除)
-
Python list列表中删除多个重复元素操作示例
-
JAVA中数组插入与删除指定元素的实例代码
-
jsp操作MySQL实现查询/插入/删除功能示例
-
原生JS的DOM操作之插入元素(代码教程)