数据分析-numpy学习
安装 pip install pandas 安装pandas之后会自动安装numpy numpy操作 一维数组的操作 import numpy as np # 列表乘数 x = np.ar

数据分析-numpy学习

发布时间:2024-04-02 (2024-04-02)

安装

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数组与列表的区别

  1. 数组对象内的元素类型必须一样
  2. 数组大小不可修改

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)