numpy库

numpy库的使用

创建数组

x1 = np.array([1, 2, 3], dtype="int8")

print(x1)
print(x1.dtype) # 数据类型
x2 = np.array(range(1, 10), dtype="int8")

print(x2)
print(x2.dtype)
x3 = np.arange(1, 10, 2, dtype="int8")

print(x3)
print(x3.dtype)

数据类型

x3 = np.arange(1, 10, 2, dtype="int8")

print(x3)
print(x3.dtype)

# 改变数据类型
x4 = x3.astype("float32")

print(x4)
print(x4.dtype)
x5 = np.array([1, 0, 1, 1, 0], dtype="bool")

print(x5)
print(x5.dtype)
# 随机生成数据
x6 = np.random.random(10)

print(x6)

# 四舍五入
x7 = np.round(x6, 2)
print(x7)

数据形状

x8 = np.arange(16)
print(x8)
print(x8.shape)

# 改变数组的形状
x9 = x8.reshape(4, -1)
print(x9)
print(x9.shape)

# 拉平
x10 = x9.flatten()
print(x10)

数组计算

x11 = np.arange(12).reshape(3, 4)
print(x11)

# 数组与数字的加减乘除
x12 = x11 + 3
print(x12)
x13 = np.arange(13, 25).reshape(3, 4)
print(x13)

# 数组与形状相同的数组计算
x14 = x11 + x13
print(x14)

# 数组与形状不同的数组计算(不是所有的情况都适用),遵循广播原则
x15 = np.arange(4).reshape(1, 4)
x16 = x11 - x15
print(x16)

x17 = np.arange(3).reshape(3, 1)
x18 = x11 - x17
print(x18)
print(x11)

# sum(),mean(),max(),min()

# 数组所有元素求和
print(x11.sum())

# 对列进行求和
print(x11.sum(axis=0))

# 对行进行求和
print(x11.sum(axis=1))

读取文件

txt = np.loadtxt('numpy_read_file.csv', delimiter=',', skiprows=1, usecols=[0, 1, 2], encoding='utf-8', dtype='int64')

print(txt)

切片和索引

# 取某行
print(txt[0])

# 取连续行
print(txt[0:2])

# 取不连续的行
print(txt[[0, 1, 3]])

# 取某列
print(txt[:, 0])

# 取连续列
print(txt[:, 0:2])

# 取不连续的列
print(txt[:, [[0, 2]]])

# 取某行某列
print(txt[1, 1])

# 取连续的多行多列
print(txt[0:2, 0:2])

# 取不连续的多行多列
print(txt[[0, 2],[0, 2]])

三元运算符

print(x11)

# 如果数组的元素小于5,则取0;否则,取5
print(np.where(x11<5, 0, 5))

# clip()裁剪,小于4的替换为4,大于7的替换为7
print(x11.clip(4, 7))

数组拼接

print(x11)

x19 = np.arange(13, 25).reshape(3, 4)

print(x19)

# 数组拼接
x20 = np.vstack((x11, x19))  # 垂直拼接
print(x20)
print(x20.shape)

x21 = np.hstack((x11, x19))  # 水平拼接
print(x21)
print(x21.shape)

数组行和列的交换

x22 = np.arange(12).reshape(3, 4)
print(x22)

# 行交换
x22[[1, 2], :] = x22[[2, 1], :]
print(x22)

# 列交换
x22[:, [1, 2]] = x22[:, [2, 1]]
print(x22)

np.random

# 均匀分布
print(np.random.rand(2, 5))

# 正态分布
print(np.random.randn(2, 5))

# 产生某个范围内的随机整数
print(np.random.randint(0, 10, (2, 4)))

numpy的其它方法

# 返回数组中最大元素的下标
print(np.argmax(x22))

print(np.argmax(x22, axis=0))

# 返回数组中最小元素的下标
print(np.argmin(x22))

print(np.argmin(x22, axis=1))

# 创建全为0的数组
print(np.zeros((2, 3)))

# 创建全为1的数组
print(np.ones((2, 3)))

# 创建对角线为1的方阵
print(np.eye(4))
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章