python求组合数cnm_【Python数据库】Numpy数据库

本文介绍了Numpy数据库的基本用法,包括导入、矩阵生成、等差数列创建、数组运算、切片以及函数应用。示例中展示了如何生成不同类型的数组,如全零、全一和单位阵,以及如何进行数组乘法、加法和除法运算。还提到了二维数组的切片选择和使用数组作为索引的独特方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Numpy是一个内置的数学数据库,很多知识应该是涉及到高数的,但是无奈很多我已经不记得了。只能介绍一些我了解的了。

首先导入数据包:

import numpy as np

f3835ae31acb562ce2c74bea51127ef3.png

可以尝试一下矩阵和数列:

f8f0ada8da70a0425f2a5e3923e16178.png

a8b2328147433f0a2915929e5741a2ac.png

dtype是表示数据类型的:

int8整数float16浮点数object对象类型
uint8整数complex64复数string_字符串

7c92ab3f2a941e8b8fae4881aeb8ae12.png

随机生成数列:

np.zeros((6,3)) 生成6行3列的0数组

np.ones((2,3))  生成2行3列的1数组

np.eye(5,3)  生成5行3列的1和0数组

bb8821e7f5249225d873431baae37071.png

生成序列:

np.arange(2, 10, 2) 生成2-10左闭右开的数列,步长为2。

3f3d3e6d57b8e670e6144c938b7010ce.png

等差数列:

a = np.linspace(1,10,num=5) 生成1-10的等差数列,5个数。

ac850fc0e42d861cbc8960dbcda79a93.png

注意:ndarray的列表必须是同类型的,而python的列表可以是不同类型的。比如文字和数字同时在一个序列里面。

运算:

对于numpy数据包里面可以直接运算,数列和数列中1对1相乘。

a = np.array([1,2,3])

print(a * a)

print(a + a)

print(1/a)

9309062a683b0f6e3a24a942642e58d7.png

a=np.arange(10)

求平方根

print(np.sqrt(a))

求e的幂次

print(np.exp(a))

numpy算术函数

a= np.arange(1, 11) * np.arange(1, 11)

b= np.arange(1, 11)

 加法运算

c = np.add(a, b)

减法

c = np.subtract(a, b

乘法

c = np.multiply(a, b)

除法

c = np.divide(a,b)

求最大值

c = np.maximum(a, b)

求倒数

c = np.reciprocal(a)

指数运算

c = np.power(b, 2)

三角函数 - sin

a = np.array([0,30,45,60,90])

c = np.sin(a*np.pi/180)

三角函数 - cos

c = np.cos(a*np.pi/180)

dot 函数

dot是内积的意思。0*0+1*1+2*2=5

96726558d5b470d2ff780a3e721e57d4.png

还可以矩阵相乘:

矩阵1:

1 2 * 1 2

3 4 * 3 4=横着的1 2 乘以竖着的1 3 ,所以第一个返回了7。第二个是横着的1 2 乘以竖着的2 4 ,所以返回了10。以此类推。

2d8d618a45151a726a14b32ab184525b.png

数组切片:

一维数组和列表差不多,那就是二维数组了。

arr2d = np.arange(9).reshape((3,3))

# 获取第2行数据,是一个一维数组

arr2d[2] 

# 获取第0行第2列,是一个数值

arr2d[0][2]

# 另外一种方式获取第0行第2列

arr2d[0, 2]

# 使用数组作用索引,会返回一个矩阵数字,它的组合是第一个框里面的一个和第二个框里面的一个构成第一个数字的索引。

arr2d[[0, 1], [1, 2]]

# 数组的切片:数组名[行,列]。

# 选择前2行数据

arr2d[:2]

# 选择前2行,后2列数据

arr2d[:2, 1:]

函数:

计算平均值

arr = np.array([3, 2, 4, 1])

arr.mean() 

求和arr.sum() 
方差arr.std() 
最大值arr.max()
最小值arr.min() 
最大值所在的位子arr.argmax()
最小值所在的位子arr.argmin() ‍
累计求和

arr.cumsum() 

c9f6777a5fd4d86a2d83834b6eacd572.png

也是累计求和

np.add.accumulate(arr)

f1e89ecf82482618faf058992b2e705c.png

大于1的合计(arr>1).sum() 
任何大于1的数

(arr>1).any()

a2a70c793c58031dbfe34b82c970000d.png

所有大于一的数

(arr>1).all()

7e1282e3038510ef76a89434b9d5955b.png 

好烦啊,不想分享了,今天你们都学废了吧!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值