匠心精神 - 良心品质腾讯认可的专业机构-IT人的高薪实战学院

咨询电话:4000806560

Python神器之numpy详解

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在科学计算和数据处理领域中的不可或缺的工具之一。