numpy 学习

引入库:
import numpy as np

a = np.arange(0, 60, 10).reshape((-1, 1)) + np.arange(6)
arange:可传参:[start],stop,[step],[dtype]
reshape((r,c)),把数组按照r行c列重新组合,为-1时此轴会自动计算出;
1*n+n*1,会生成n*n的数组;
上面代码生成数组如下:
array([[ 0, 1, 2, 3, 4, 5],
[10, 11, 12, 13, 14, 15],
[20, 21, 22, 23, 24, 25],
[30, 31, 32, 33, 34, 35],
[40, 41, 42, 43, 44, 45],
[50, 51, 52, 53, 54, 55]])

numpy数组和python列表是不同的,可以通过np.array(list1,list2)根据列表生成数组;

可通过shape方法得到数组形状;
np.linspace(1, 10, 10, endpoint=False),生成从1到10,10个数,是否包含结束可通过endpoint指定;
np.logspace(0, 10, 11, endpoint=True, base=2)生成,0到10,11个数,等比是2;
使用 frombuffer, fromstring, fromfile等函数可以从字节序列创建数组,如:
a=’abcdef’;np.fromstring(a,dtype=np.int8)得到:
array([ 97, 98, 99, 100, 101, 102], dtype=int8)
numpy数组的存取和list类似,
特殊的是:
a[i],a为numpy数组,i 为list,最终得到以i值索引a中的值的数组;
i也可以是一个bool表达式,比如a>5,返回数组中>5的元素;
可以通过a[a>5]=0把a中>5的元素全都置成5;
np.random.rand(10):用来生成10个0~1随机数;
tolist可以将numpy数组转为列表;
unique可用于去重,但是对于多维数组,基于整行去重不能直接使用,因为此函数是先把数组拉成1维,实际上是对单个数进
行去重,如果想进行整行可以用:np.array(list(set(tuple(i) for i in c)));

np.stack((a,b,c),axis=xxx),a,b,c进行堆叠,axis指定堆叠轴;
np.dot(a,b),矩阵a,b的点乘;
a*b,a,b对应元素相乘;
np.concatenate((a,b)),a,b进行拼接;

### NumPy学习教程和资源 #### 数组创建与操作 NumPy提供了多种方法来创建数组并执行各种操作。例如,可以使用`np.array()`函数创建一维或多维数组[^2]。 ```python import numpy as np a = np.array([1, 2, 3]) b = np.array([[0], [4], [5]]) result = a + b print(result) ``` 这段代码展示了如何通过广播机制将不同形状的数组相加得到新的结果矩阵。 #### 基本数学运算功能 除了简单的算术运算外,NumPy还支持一系列高级数学计算,如绝对值、平方根、平方等: ```python n = np.array([1, 4, 8, 8, 9, -24]) # 绝对值 abs_values = np.abs(n) # 开方 sqrt_values = np.sqrt(np.abs(n)) # 对负数求开方前先取绝对值 # 平方 square_values = np.square(n) # 指数 exp_values = np.exp(n) # 自然对数(仅适用于正数) log_values = np.log(np.abs(n)) # 三角函数 sin_values = np.sin(n * (np.pi / 180)) cos_values = np.cos(n * (np.pi / 180)) tan_values = np.tan(n * (np.pi / 180)) ``` 这些例子说明了NumPy库中丰富的内置函数能够简化复杂的数值处理过程。 #### 数据舍入控制 对于浮点型数据的操作,有时需要指定保留的小数位数,这时可以用到`numpy.round()`函数: ```python rounded_array = np.round(a, decimals=2) ``` 此命令会返回一个新的数组,其中每个元素都被四舍五入到了两位小数。 为了更深入地了解NumPy的功能以及掌握更多实用技巧,建议参考官方文档和其他在线课程资料。此外,在实际项目实践中不断练习也是提高技能的有效途径之一。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值