Python神器之numpy详解
在Python中,numpy是一个非常强大的库,它提供了对于数组的快速处理和数学运算的支持。本文将对numpy库进行详细的介绍,包括numpy数组的创建和操作、数学函数、随机数以及文件I/O等。
1. numpy数组的创建和操作
首先,我们来看一下如何创建numpy数组。可以使用numpy自带的array函数将Python列表转换为numpy数组:
```
import numpy as np
a = np.array([1, 2, 3])
```
可以使用shape属性获取数组的形状:
```
print(a.shape)
```
输出结果为:
```
(3,)
```
这表示a是一个形状为(3,)的一维数组。
也可以使用reshape函数改变数组的形状:
```
b = a.reshape((1, 3))
print(b.shape)
```
输出结果为:
```
(1, 3)
```
这表示b是一个形状为(1, 3)的二维数组。
除了从列表创建,还可以使用arange函数创建等差数组:
```
c = np.arange(10)
print(c)
```
输出结果为:
```
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
```
还可以使用linspace函数创建等分数组:
```
d = np.linspace(0, 1, 10)
print(d)
```
输出结果为:
```
array([0. , 0.11111111, 0.22222222, 0.33333333, 0.44444444,
0.55555556, 0.66666667, 0.77777778, 0.88888889, 1. ])
```
可以使用numpy的运算符对数组进行元素级的操作:
```
e = np.array([1, 2, 3])
f = np.array([4, 5, 6])
print(e + f)
print(e - f)
print(e * f)
print(e / f)
```
输出结果为:
```
array([5, 7, 9])
array([-3, -3, -3])
array([ 4, 10, 18])
array([0.25 , 0.4 , 0.5 ])
```
2. 数学函数
numpy库提供了一些常用的数学函数,如sin、cos、tan、exp等。
```
g = np.array([0, np.pi/2, np.pi])
print(np.sin(g))
print(np.cos(g))
print(np.tan(g))
print(np.exp(g))
```
输出结果为:
```
array([0.0000000e+00, 1.0000000e+00, 1.2246468e-16])
array([ 1.000000e+00, 6.123234e-17, -1.000000e+00])
array([ 0.00000000e+00, 1.63312394e+16, -1.22464680e-16])
array([ 1. , 4.48168907, 23.14069263])
```
numpy库还提供了一些聚合函数,如sum、mean、median等。
```
h = np.array([1, 2, 3, 4])
print(np.sum(h))
print(np.mean(h))
print(np.median(h))
```
输出结果为:
```
10
2.5
2.5
```
3. 随机数
numpy库提供了生成随机数的函数,如rand、randn、randint等。
```
i = np.random.rand(3)
print(i)
j = np.random.randn(3)
print(j)
k = np.random.randint(0, 10, size=3)
print(k)
```
输出结果为:
```
array([0.40801843, 0.48259913, 0.23997268])
array([ 0.59440656, -0.00523045, 1.5728816 ])
array([4, 3, 5])
```
4. 文件I/O
numpy库还提供了读写文件的函数,如loadtxt、savetxt、load等。
先创建一个文件data.txt,并写入一些数值:
```
1.0, 2.0, 3.0
4.0, 5.0, 6.0
7.0, 8.0, 9.0
```
然后使用loadtxt函数读取文件:
```
l = np.loadtxt('data.txt', delimiter=',')
print(l)
```
输出结果为:
```
array([[1., 2., 3.],
[4., 5., 6.],
[7., 8., 9.]])
```
使用savetxt函数将数组写入文件:
```
np.savetxt('new_data.txt', l, delimiter=',')
```
然后读取新的文件并打印:
```
m = np.loadtxt('new_data.txt', delimiter=',')
print(m)
```
输出结果与之前的相同。
以上就是numpy库的一些常用的功能和用法。numpy库为Python提供了非常强大的数学计算和数据处理功能,是Python在科学计算和数据处理领域中的不可或缺的工具之一。