数组操作——numpy对于数组的基本操作(转置、索引、切片以及数值的修改)

  1. numpy中数组的转置
    需求:
  • 将一维数组转换为3行4列的二维数组,并进行转置
import numpy as np

# 将一维数组转换为3行4列的二维数组
data = np.arange(12).reshape((3, 4))
print(data)


# 1).方法一
print(data.transpose())

# 2).方法二:按轴进行翻转
# 0轴 , 1 轴
print(data.swapaxes(1, 0))

# 3). 方法三:
print(data.T)

在这里插入图片描述

  1. numpy的索引和切片
import numpy as np
data = np.arange(12).reshape((3, 4))
print(data)
##对数组元素进行索引和切片
# 1. 取第一行的数据
print(data[0])

# 2.  取第一列的数据
print(data.T[0])
print(data[:, 1])

#3.  获取多行
print(data[:2])

# 4. 获取多行列
print(data.T[:2])
print(data[:, :2])


# 5. 获取指定行的前几列;
print(data)
print(data[[0,2], :2])
print(data[:2, [0,2]])

  1. numpy中数值的修改
  1. . 将指定元素修改为指定值
import numpy as np

# 将一维数组转换为3行4列的二维数组
data = np.arange(12).reshape((3, 4))
print(data)

# # 取第一行的数据修改为0
# data[0] = 0
# print(data)
#
# # 将前两列元素修改为0
# data.T[:2] = 0
# print(data)

在这里插入图片描述
2)布尔索引

# 复杂的条件: data中所有大于8的数字都替换为0
# 返回一个三行四列的数组, 存储的是Bool值
print(data>8)
data[data>8] = 0
print(data)
#复杂的条件: data中所有大于8的数字都替换为0, 否则替换为1; a>b?a:b
print(np.where(data <= 8, 1, 0))
#裁剪: 如果data<=8, 替换称8, 如果data>=10, 替换为10;
print(data.clip(8, 10))

在这里插入图片描述
在这里插入图片描述
3).数组的拼接

t1 = np.arange(12).reshape(2, 6)
t2 = np.arange(12).reshape(2, 6)
t3 = np.arange(12).reshape(2, 6)

竖直拼接(vertically)

print(np.vstack((t1, t2, t3)))

在这里插入图片描述
水平拼接(horizontally)

print(np.hstack((t1, t2, t3)))

在这里插入图片描述
4)。数组的行列交换

t4 = np.arange(12).reshape(2, 6)
# 行交换(第一行和第二行进行交换)
print("原数据:\n", t4)
t4[[0, 1], :] = t4[[1, 0], :]
print("替换后的数据:\n", t4)

# 列交换(第3列和第5列进行交换)
print("原数据:\n", t4)
t4[:, [2, 4]] = t4[:, [4, 2]]
print("替换后的数据:\n", t4)

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_42213622/article/details/87925767