安装
pip install pandas
安装pandas之后会自动安装numpy
numpy操作
一维数组的操作
import numpy as np
# 列表乘数
x = np.array([10, 23, 56, 45])
print(x * 5)
# 列表相乘
x1 = np.array([1, 2, 3, 4, 5])
x2 = np.array([4, 10, 6, 7, 3])
print(x1 * x2)
# 求和
print((x1 * x2).sum())
np数组与列表的区别
- 数组对象内的元素类型必须一样
- 数组大小不可修改
array创建
# 打印类型
print(x1.dtype) # int32
# 打印长度
print(x1.size) # 5
# 打印行列
print(x1.shape) # (5,)
# 转置
print(np.array([[1, 2, 3], [7, 3, 9]]))
"""
[[1 2 3]
[7 3 9]]
"""
print(np.array([[1, 2, 3], [7, 3, 9]]).T)
"""
[[1 7]
[2 3]
[3 9]]
"""
# 查看维数
print(x1.ndim) # 1
# 全 0 数组
print(np.zeros(10, dtype='int'))
# 全 1 数组
print(np.ones(10, dtype='int'))
# 随机数组
print(np.empty(20, dtype='int'))
#
print(np.arange(1, 100, 5))
print(np.arange(1, 21, 0.3))
# 第三个参数是分成多少个
print(np.linspace(10, 50, 5, dtype='int'))
数组与标量
array索引与切片
a = np.arange(10)
print(a)
print(a + 1)
print(a - 1)
print(a * 10 + 1)
print(a / 2)
print(a // 2)
print(a % 2)
b = np.arange(1, 11)
a[0] = 10
print(a + b)
print(a > b) # 判断每一个的元素和对应位置的大小
# 将一维数组变成二维数组
s = np.arange(15).reshape((3, 5)) # 三行五列
print(s)
"""
[[ 0 1 2 3 4]
[ 5 6 7 8 9]
[10 11 12 13 14]]
"""
# 多维数组的索引
print(s[1][2])
print(s[1, 2])
# 切片
print(s[:2][:1]) # [[0 1 2 3 4]]
print(s[:1, :2])
# 布尔型
a = np.array([12, 56, 2, 443, 7, 12, 34])
# 选出大于10的数
print(a[a > 10])
# 选出大于10的偶数
print(a[(a > 10) & (a % 2 == 0)])
print(a[(a > 10) | (a % 2 == 0)])
array花式索引
import numpy as np
a = np.arange(12, 100, 3)
print(a)
# 取索引为1,4,5的元素
print(a[[1, 4, 5]])
array通用函数
import numpy as np
a = np.arange(-5, 5)
print(a)
# 绝对值
print(abs(a))
print(np.abs(a))
a = np.linspace(1, 5, 10)
# 开方
# print(np.sqrt(a))
import math
# 向上取整
# print(a)
# print(math.ceil(1.6)) # 向上取整
# print(math.floor(1.6)) # 向下取整
# print(round(1.6)) # 四舍五入
print(np.ceil(a))
# 向下取整
print(np.floor(a))
# 四舍五入
print(np.round(a))
# 取最大值
print(np.maximum(np.array([1, 2, 3, 7]), np.array([-12, 1, 4, 6])))
# 取最小值
print(np.minimum(np.array([1, 2, 3, 7]), np.array([-12, 1, 4, 6])))
numpy
nan 不是一个浮点数 np.nan != np.nan
# 判断 np.isnan
# 删掉nan的数
a[~(np.isnan(a))]
inf 比任何数都大 np.inf == np.inf
# 过滤掉inf
a[a!=np.inf]
a[~np.isinf(a)]
统计方法
import numpy as np
a = np.array([1, 5, 2, 7, 9])
# 求和
print(a.sum())
# 求平均值
print(a.mean())
# 求平均差
print(a.std())
# 求方差
print(a.var())
# 最大值
print(a.max())
# 最小值
print(a.min())
# 最大值下标
print(a.argmax())
# 最小值下标
print(a.argmin())
# 随机数生成
a = np.random.randint(0, 10) # 生成一个数
print(a)
a = np.random.randint(0, 10, 5) # 生成一个长度为 5 的数组
print(a)
a = np.random.randint(0, 10, (3, 5)) # 生成一个长度为 3行 5列 的数组
print(a)