一.数组的创建

首先导入模块

import numpy as np

1. Numpy提供了array()函数,用来创建数组,创建一维和二维数组,多维数组的创建形式是一样的

arr1 = np.array([1, 2, 3, 4, 5])  # 一维数组
arr2 = np.array([[1.0, 2, 3, 4, 5], [6, 7, 8, 9, 10]])  # 二维数组,可以理解为矩阵形式

>>>
[1 2 3 4 5] 

 [[ 1.  2.  3.  4.  5.]
 [ 6.  7.  8.  9. 10.]]

2. arange()函数创建一维数组

arr3 = np.arange(1, 11, 1)
>>>
[ 1  2  3  4  5  6  7  8  9 10]

需要注意的是arange(start,end,step)函数中包含开始值start,终值end,步长step,但是最终的数组中不包含end,比如 np.arange(1, 11, 1) 开始值为1,终值为11,步长为1,但是只能生成1-10的一维数组,不包括11

3. linspace()函数

arr4 = np.linspace(1, 11, 10)
print(arr4)
>>>
[ 1.          2.11111111  3.22222222  4.33333333  5.44444444  6.55555556
  7.66666667  8.77777778  9.88888889 11.        ]

注意linspace函数与arange函数的区别,np.linspace(1, 11, 10),包含开始值1,终值11,元素个数10,此时最终的数组中可包含11

4.ones(),zeros()函数

arr5 = np.ones(shape=(2, 3), dtype=float)
print(arr5)
arr6 = np.zeros(shape=(2, 3), dtype=int)
print(arr6)

>>>
[[1. 1. 1.]
 [1. 1. 1.]]
[[0 0 0]
 [0 0 0]]

ones()和zeros()是分别生成全为1和0的数组,通过shape()来指定数组的形状和dtype()来指定数组元素的类型 

二. 数组的属性

属性作用
ndim数组的维度,表示多少维数组,返回2,则表示二维数组 
shape数组的维度,返回的是数组的行数和列数
size返回数组中元素的个数
dtype返回数组中元素的类型
arr2 = np.array([[1.0, 2, 3, 4, 5], [6, 7, 8, 9, 10]])  # 二维数组,可以理解为矩阵形式
print(arr2)
print(arr2.ndim)  # 表示数组的维度
print(arr2.shape)  # 表示数组的维度,返回行列数
print(arr2.size)  # 返回数组中元素的总个数
print(arr2.dtype)  # 返回数组中元素的类型

>>>
[[ 1.  2.  3.  4.  5.]
 [ 6.  7.  8.  9. 10.]]

2
(2, 5)
10
float64

值得注意的是,Numpy数组中要求所有元素都为同一类型,具有一定的局限性。pandas模块可以解决这个问题。

三. 数组的索引

一维和二维数组的索引

arr1 = np.array([1, 2, 3, 4, 5])
print(arr1[1])  # 数组的下标从0开始,返回位置为1的元素
>>>
2

print(arr1[0:2])  # 切片操作,中间用冒号隔开,返回位置为0,1的元素
>>>
[1 2]


arr2 = np.array([[1.0, 2, 3, 4, 5], [6, 7, 8, 9, 10]])
print(arr2[0:2, 0:2])  # 二维数组的切片操作,逗号之前为行索引,之后为列索引,行列索引位置用冒号隔开
>>>
[[1. 2.]
 [6. 7.]]

print(arr2[:, 0:1])  # 默认行索引为数组的所有行,第1列
>>>
[[1.]
 [6.]]

print(arr2[0:1, :])  # 默认列索引为数组的所有列,第1行
>>>
[[1. 2. 3. 4. 5.]]

四. Numpy的统计分析

包括求和sum,均值mean,方差var,标准差std,最大值max,最小值min等,注意的是这些值默认返回float 类型

import numpy as np
arr2 = np.array([[1.0, 2, 3, 4, 5], [6, 7, 8, 9, 10]])

print(arr2.sum())  # 全部元素求和 55.0
print(arr2.mean())  # 求均值 5.5
print(arr2.var())  # 方差 8.25
print(arr2.std())  # 标准差 2.8722813232690143
print(arr2.max())  # 全部元素的最大值 10.0
print(arr2.min())  # 全部元素最小值 1.0
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐