零基础学python
NumPy——Numerical Python缩写
NumPy模块可以构建多维数据的容器,将各种类型的数据快速地整合在一起,完成多维数据的计算及大型矩阵的存储和处理。
NumPy模块最主要的特点就是引入了数组的概念。
数组是一些相同类型的数据集合,这些数据按照一定的顺序排列,并且每个数据占用大小相同的存储空间。
NumPy提供了多种创建数组的方法,创建的数组类型也多种多样。
### 基于列表创建一维数组
import numpy as np
a = np.array([1,2,3,4])
b = np.array(['产品编号', '销售数量', '销售单价', '销售金额'])
print(a)
print(b)
#[1 2 3 4]
#['产品编号' '销售数量' '销售单价' '销售金额']
同一个数组中各元素的数据类型必须相同
### 创建多维数组
import numpy as np
c = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(c)
#[[1 2 3]
# [4 5 6]
# [7 8 9]]
#3*3的二维数组
array()函数语法格式和参数意义:
array(object, dtype = None, copy = True,
order = None, subok = False, ndmin = 0)
参数 | 说明 |
---|---|
object | 必选,为一个序列型对象,如列表、元组、字典、集合等,还可以是一个已经创建好的数组 |
dtype | 可选,用于指定数组元素的数据类型 |
copy | 可选,用于设置是否需要复制对象 |
order | 可选,用于指定创建数组的样式 |
subok | 可选,默认返回一个与基类的类型一致的数组 |
ndmin | 可选,用于指定生成数组的最小维度 |
## 创建等差数组arange()函数
import numpy as np
d = np.arange(1, 20, 4)
print(d)
#[ 1 5 9 13 17]
省略第三个参数,则步长默认为1
import numpy as np
d = np.arange(1, 20)
print(d)
#[ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19]
arange()函数只输入一个参数,则作为结束值,起始值默认为0,步长默认为1
import numpy as np
d = np.arange(20)
print(d)
# [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19]
arange()函数的语法格式和参数意义:
arange(start, stop, step, dtype = None)
参数 | 说明 |
---|---|
start | 可选,表示起始值,默认为0 |
stop | 必选,作为结束值,生成的数组元素不包括这个值 |
step | 可选,表示步长,如果省略,则默认为1,如果指定了该参数,则必须给出参数start的值 |
dtype | 可选,表示创建的数组元素的数据类型,默认值为None,如果省略,则从其他参数推断数据类型 |
子模块random
主要有rand()函数,randn()函数,randint()函数
用rand()函数创建的数组中的每个元素都是[0,1)区间内的随机数
#### 创建一个有三个元素的一维数组
import numpy as np
e = np.random.rand(3)
print(e)
# [0.20647933 0.95992981 0.00234951]
### 创建一个2行3列的二维数组
import numpy as np
e = np.random.rand(2,3)
print(e)
# [[0.69069007 0.7545418 0.31325586]
# [0.53050908 0.99653132 0.52121818]]
用randn函数创建的数组中的元素是符合标准正态分布(均值为0,标准差为1)的随机数。
#### 创建一个有3个元素的一维数组
import numpy as np
e = np.random.randn(3)
print(e)
#### 创建一个3行3列的二维数组
e = np.random.randn(3,3)
print(e)
输出符合标准正态分布的随机数
[-0.93650953 -0.12270785 -0.77946136]
[[ 1.00374731 0.94441086 2.4394086 ]
[ 0.46833841 -0.10056687 -0.82493992]
[ 0.55322696 -0.14631903 -0.34528775]]
用randint()函数创建的数组中的元素是指定范围内的随机整数
#### 创建一个有10个元素的一维数组
import numpy as np
e = np.random.randint(1, 5, 10) # [1,5)区间的数
print(e)
#### 创建4行2列二维随机整数数组
import numpy as np
e = np.random.randint(1, 10, (4, 2)) # [1,10)区间
print(e)
[3 3 1 4 2 2 1 3 2 4]
[[5 3]
[3 6]
[4 5]
[6 1]]
数组的shape属性用于查看数组的行数和列数
## 查看数组的行数和列数
import numpy as np
arr = np.array([[1, 2], [3, 4], [5, 6]])
print(arr.shape) # 3行2列的数组
(3, 2) # 得到的是一个元组
## 只想查看行数或列数,从元组中提取
import numpy as np
arr = np.array([[1, 2], [3, 4], [5, 6]])
print(arr.shape[0]) # 查看行数
print(arr.shape[1]) # 查看列数
3
2
数组的size属性用于查看数组的大小
## 查看数组元素个数size属性
import numpy as np
arr = np.array([[1, 2], [3, 4], [5, 6]])
print(arr.size)
6
数组的dtype属性用于查看数组的元素的数据类型
## 查看和转换数组的元素的数据类型dtype属性
import numpy as np
arr = np.array([[1.3, 2, 3.6, 4], [5, 6, 7.8, 8]])