csdn_spider/blog/ds19991999/原创-- Numpy学习(一)——Numpy 简介.md

293 lines
3.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 原创
Numpy学习——Numpy 简介
# Numpy学习——Numpy 简介
# Numpy 简介
## 导入numpy
Numpy是Python的一个很重要的第三方库很多其他科学计算的第三方库都是以Numpy为基础建立的。
Numpy的一个重要特性是它的**数组计算**。
```
from numpy import *
```
以下几种导入方式都行
```
import numpy
import numpy as np
from numpy import *
from numpy import array, sin
```
ipython中可以使用magic命令来快速导入Numpy的内容。
```
%pylab
```
```
Using matplotlib backend: TkAgg
Populating the interactive namespace from numpy and matplotlib
```
## 数组上的数学操作
```
a = [1, 2, 3, 4]
a + 1 # 直接运行报错
```
```
TypeErrorTraceback (most recent call last)
<ipython-input-3-eb27785ac8c2> in <module>()
1 a = [1, 2, 3, 4]
----> 2 a + 1 # 直接运行报错
TypeError: can only concatenate list (not "int") to list
```
```
# 使用array数组
a = array(a)
a
```
```
array([1, 2, 3, 4])
```
```
a + 1
```
```
array([2, 3, 4, 5])
```
```
b = array([2, 3, 4, 5])
a+b
```
```
array([3, 5, 7, 9])
```
```
a*b
```
```
array([ 2, 6, 12, 20])
```
```
a**b
```
```
array([ 1, 8, 81, 1024])
```
## 提取数组中的元素
```
a[0]
```
```
1
```
```
a[:2]
```
```
array([1, 2])
```
```
a[-2:]
```
```
array([3, 4])
```
```
a[:2]+a[-2:]
```
```
array([4, 6])
```
## 修改数组形状
```
# 查看array的形状
a.shape
```
```
(4,)
```
```
# 修改array的形状
a.shape = 2,2
a
```
```
array([[1, 2],
[3, 4]])
```
## 多维数组
```
a
```
```
array([[1, 2],
[3, 4]])
```
```
a+a
```
```
array([[2, 4],
[6, 8]])
```
```
a*a
```
```
array([[ 1, 4],
[ 9, 16]])
```
## 画图
**linspace** 用来生成一组等间隔的数据:
```
# precision该方法用来定义小数点后的位数
a = linspace(0, 2*pi, 21)
%precision 3
a
```
```
array([0. , 0.314, 0.628, 0.942, 1.257, 1.571, 1.885, 2.199, 2.513,
2.827, 3.142, 3.456, 3.77 , 4.084, 4.398, 4.712, 5.027, 5.341,
5.655, 5.969, 6.283])
```
```
# 三角函数
b = sin(a)
b
```
```
array([ 0.000e+00, 3.090e-01, 5.878e-01, 8.090e-01, 9.511e-01,
1.000e+00, 9.511e-01, 8.090e-01, 5.878e-01, 3.090e-01,
1.225e-16, -3.090e-01, -5.878e-01, -8.090e-01, -9.511e-01,
-1.000e+00, -9.511e-01, -8.090e-01, -5.878e-01, -3.090e-01,
-2.449e-16])
```
```
# 画出三角函数图像
%matplotlib inline
plot(a, b)
```
```
[<matplotlib.lines.Line2D at 0xab0fe10>]
```
## 从数组中选择元素
```
b
```
```
array([ 0.000e+00, 3.090e-01, 5.878e-01, 8.090e-01, 9.511e-01,
1.000e+00, 9.511e-01, 8.090e-01, 5.878e-01, 3.090e-01,
1.225e-16, -3.090e-01, -5.878e-01, -8.090e-01, -9.511e-01,
-1.000e+00, -9.511e-01, -8.090e-01, -5.878e-01, -3.090e-01,
-2.449e-16])
```
```
# 假设我们想选取数组b中所有非负的部分首先可以利用 b 产生一组布尔值
b >= 0
```
```
array([ True, True, True, True, True, True, True, True, True,
True, True, False, False, False, False, False, False, False,
False, False, False])
```
```
mask = b >= 0
```
```
# 画出所有对应的非负值对应的点:
plot(a[mask], b[mask], 'ro')
```
```
[<matplotlib.lines.Line2D at 0xafd0e50>]
```
```
plot(a[mask], b[mask], 'r')
```
```
[<matplotlib.lines.Line2D at 0xa833ad0>]
```