操作ndarray元素:访问、删除、插入

1 访问ndarray元素

import numpy as np
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])

output:

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

1)在方括号 [ ] 中添加索引来访问元素。
2)可以使用正索引和负索引访问 ndarray 中的元素。
3)正索引表示从数组的开头访问元素,负索引表示从数组的末尾访问元素。
4)正索引从 0 开始,负索引从 -1 开始。
2 修改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)

output:

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)

output:

Original:
X =
[[1 2 3]
 [4 5 6]
 [7 8 9]]

Modified:
X =
[[20 2 3]
 [ 4 5 6]
 [ 7 8 9]]

3 删除ndarray元素
修改秩为1的 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)

output:

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)对于秩为 1 的 ndarray,不需要使用关键字 axis
2)对于秩为 2 的 ndarrayaxis = 0 表示选择axis = 1 表示选择
4 插入ndarray元素
4.1 使用 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)

output:

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]]

1)该函数会将给定的元素列表沿着指定的轴附加到 ndarray 中。
2)当我们将行或列附加到秩为 2 的 ndarray 中时,行或列的形状必须正确,以与秩为 2 的 ndarray 的形状相符。

4.2 使用 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第三个元素前插入34
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)

output:

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]]

1)此函数会将给定的元素列表沿着指定的轴插入到 ndarray 中,并放在给定的索引前面。
2)使用 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)

output:

x = [1 2]

Y =
[[3 4]
 [5 6]]

z =
[[1 2]
 [3 4]
 [5 6]]

w =
[[3 4 1]
 [5 6 2]]

参考:链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值