python数据分析课程笔记 | 第二章 Numpy运用(下)

2.3 numpy字符串操作

在这里插入图片描述

import numpy as np

str_list = ['Hello', 'World']
str_arr = np.char.upper(str_list)

a = np.char.add(['中国', '国庆'], ['海军', '大阅兵'])
b = np.char.multiply(['中国', '万岁'], 3)
c = np.char.join([':', '-'], ['hello', 'world'])

d = ['我想学习一下python', '好好学一下java']
np.char.replace(d, '学习一下', '深入学习')

# strip只能去掉头和尾
e = ['-电动汽车\n', '海洋科技-', '-学习Python\n']
np.char.strip(e, '-')
np.char.rstrip(e, '\n')

f = ['hello,world!互联网金融.123456789']
np.char.find(f, '互联网金融')

g = ['hello,world', '互联网金融', '金融互联网', 123]
np.char.islower(g)
np.char.isdigit(g)
np.char.isalpha(g)
np.char.count(g, '金融')
np.char.startswith(g, '金融')
np.char.endswith(g, '金融')

2.4 numpy统计计算

(1)随机数生成

在这里插入图片描述
在这里插入图片描述

import numpy as np

# 产生0-1之间的随机浮点数
np.random.random(100)  # 产生100个
np.random.random([3, 4])  # 产生3行4列个
np.random.seed(100)
np.random.random([3, 4])

a = np.random.rand(10, 10)  # 产生0-1均匀分布的随机数

np.random.randint(0, 100, size=100)  # 产生0-100之间的100个随机整数
np.random.randint(0, 100, size=(10, 10))  # 产生0-100之间的10行10列个随机整数

np.random.uniform(low=0, high=10, size=100)  # 产生给定范围内的均匀分布的随机数(包括小数)
np.set_printoptions(precision=2)  # 控制小数位数
np.random.uniform(low=0, high=10, size=100)

np.random.normal(1, 3, size=100)  # 产生均值为1,标准差为3的随机数
np.mean(np.random.normal(1, 3, size=10000))
np.std(np.random.normal(1, 3, size=10000))

np.random.randn(100)  # 产生100个标准正态分布的随机数
np.random.randn(10, 100)  # 产生10行100列个标准正态分布的随机数

s = np.array([1, 2, 3, 5, 9, 10])
np.random.shuffle(s)   # s发生改变
np.random.permutation(s)  # s本身不发生改变

(2)统计相关函数

import numpy as np

data = np.array([[1, 2, 3], [5, 9, 10], [7, 8, 9]])
# 求和求平均
data.sum()
data.sum(axis=0)
data.mean()
data.mean(axis=1)
# 累计求和
data.cumsum()
# 累计乘积
data.cumprod()
data.max(axis=0)
# 计算分位数(50就是中位数)
np.percentile(data, 10)
np.percentile(data, [10, 20, 30, 40, 50, 60])
# 其他
a = np.ptp(data)  # =data.max()-data.min()
b = np.sum(data > 3)

2.5 numpy线性代数

import numpy as np

a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
vector = np.dot(a, b)

arr1 = np.array([5, 15, 25, 40]).reshape(4, 1)
arr2 = np.arange(12).reshape(3, 4)
arr2d = np.dot(arr2, arr1)

data = ((1, 2, 3, 4), (5, 6, 7, 8), (9, 10, 11, 12), (13, 14, 15, 16))
arr3 = np.array(data)
# 转置
np.transpose(arr3)
# 求逆
try:
    arr3_inv = np.linalg.inv(arr3)
    print(arr3_inv)
except:
    print("矩阵不存在逆矩阵")

np.set_printoptions(suppress=True)  # 取消科学计数法
# 取出对角线元素
np.diag(arr3)

# 多元一次方程组求解
# 3x + 2y + z = 38
# 2x + 3y + z = 34
# x + 2y + 3z = 26
A = np.array([[3, 2, 1], [2, 3, 1], [1, 2, 3]])
b = np.array([[38], [34], [26]])
X = np.linalg.solve(A, b)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值