Python 数据分析笔记— Numpy 基本操作(上)

学习内容:

一、什么是数组、矩阵

数组(Array):是有序的元素序列,可以是一维、二维、多维。

array1 = [1,2,3]['a', 'b', 'c', 'd']
array2 = [[1,2,3],[4,5,6]]

矩阵(Matrix):是一个按照长方阵列排列的复数或实数集合。
在这里插入图片描述
基本运算
加(减)法: 对有相同行数与列数的数组(矩阵)的各项数字相加(减),得到新数组(矩阵)。
在这里插入图片描述
在这里插入图片描述
乘法:
1.数组乘法:对有相同行、列数的数组相乘得到新数组。

import numpy as np
a = np.array([[1,2,3],[4,5,6]])
b = np.array([[4,5,6],[7,8,9]])
a * b # 将数组a、b的对应项相乘
#输出:array([[ 4, 10, 18], [28, 40, 54]])

2.矩阵乘法:矩阵A 、B相乘,必须矩阵B行数==矩阵A列数。
在这里插入图片描述

二、创建与访问数组

(一)创建数组
1. 通过 python list 创建数组(array())

import numpy as np
np.array([1,2,3])
#输出:array([1, 2, 3])

2. 创建全零数组(zeros(行数,列数))

np.zeros((2,3)) # 创建一个2行3列的全0数组
#输出:array([[0., 0., 0.], [0., 0., 0.]])

3. 创建全1数组(ones(行数,列数))

np.ones((2,3)) # 创建一个2行3列的全1数组
#输出:array([[1., 1., 1.], [1., 1., 1.]])

4. 生成一个单位矩阵(行列号相同为1,其余置0)(eye(行数,列数))

np.eye(3,4)
#输出:array([[1., 0., 0., 0.],
#            [0., 1., 0., 0.],
#            [0., 0., 1., 0.]])

5. 创建间隔相等的数字数组(arange(含开始值, 不含结束值, 间隔值(可为小数))

np.arange(1, 5, 0.5)
#输出:array([1. , 1.5, 2. , 2.5, 3. , 3.5, 4. , 4.5])
np.arange(5) # 生成[0-4]的整数数组

6. 随机生成数组
随机生成N个 [0-1) 之间的数组(np.random.rand(N))

np.random.rand(5)
#输出:array([0.74466065, 0.60475285, 0.01624092, 0.23405253, 0.31129117])

随机生成N个服从标准正态分布的数据(np.random.randn(N))

np.random.randn(3)
#输出:array([ 0.5861455 , -1.74517127, -0.04381483])

随机生成任意整数数组(np.random.randint(low: 下限,high:上限,size: 个数))

np.random.randint(10) # 生成1个[0-9]之间的整数
np.random.randint(10,size=5) # 生成5个[0-9]之间的整数数组
np.random.randint(10,20) #生成1个[10-20)之间的整数
np.random.randint(10,20,5) # 生成5个[10-20)之间的整数数组

7. 将转换数组维度(reshape(一维数,[二维数, 三维数, …]),要求转换前后元素个数相同

a = np.array([1,2,3,4,5,6,7,8])
a.reshape(2,4) # 将一维数组转为2行4列的二维数组
#输出:array([[1, 2, 3, 4],
#            [5, 6, 7, 8]])
b = np.array([[1, 2, 3],[4, 5, 6]])
b.reshape(6) # 将二维数组转为一组数组
#输出:array([1,2,3,4,5,6])

**(二)查看数组对象属性

list_a = [1,2,3,4]
array_a = np.array(list_a)
array_b = np.array([list_a, list_a])

1. 查看数组维度(ndim)

array_a.ndim # 维度为1
#输出:1
array_b.ndim # 维度为2
#输出:2

2. 查看数组大小(shape)

array_a.shape
#输出(4,)
array_b.shape
#输出(2,4)

3. 查看数组元素个数(size)

array_a.size # 4个
array_b.size # 8个

4. 查看数组元素数据类型(dtype)

array_a.dtype
#输出:dtype('int64')

三、矩阵基本操作

1. 用二维数组生成矩阵(matrix())

a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
np.matrix(a)
#输出:matrix([[1, 2, 3],
#             [4, 5, 6],
#             [7, 8, 9]])
matrix_a = np.matrix(a)

2. 矩阵加(减运算)

matrix_a + matrix_a
#输出:matrix([[ 2,  4,  6],
#             [ 8, 10, 12],
#             [14, 16, 18]])
matrix_a - matrix_a
#输出:matrix([[0, 0, 0],
#             [0, 0, 0],
#             [0, 0, 0]])

3. 矩阵乘 (矩阵B.dot(矩阵A)),要求矩阵B列数与矩阵A行数相同,结果为B行,A列数组。

a = np.arange(8).reshape(2,4) # 生成一个2行4列的二维数组
matrix_a = np.matrix(a)
#矩阵a结构如下:
matrix([[0, 1, 2, 3],
        [4, 5, 6, 7]])
b = np.arange(6).reshape(3,2) # 生成一个2行4列的二维数组
matrix_b = np.matrix(b)
#矩阵b结构如下:
matrix([[0, 1],
        [2, 3],
        [4, 5]])
matrix_b.dot(matrix_a)
#输出如下
matrix([[ 4,  5,  6,  7],
        [12, 17, 22, 27],
        [20, 29, 38, 47]])
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fjwangxi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值