引入
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: 5this 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]]
到此这篇关于python 操作 ndarray 元素:访问、删除与插入的文章就介绍到这了,更多相关python ndarray 元素操作内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论