【Python】NumPy数据分析(二)

人有一种天生的、难以遏制的欲望,那就是在理解之前就评判。

前言 

  这是我自己学习Python的第三篇博客总结。后期我会继续把Python学习笔记开源至博客上。 

  上一期笔记有关Python的NumPy数据分析,没看过的同学可以去看看:【Python】NumPy数据分析(一)-CSDN博客icon-default.png?t=O83Ahttps://blog.csdn.net/hsy1603914691/article/details/142670907

多维数组 

1. 一维数组只有行,二维数组相比一维数组多了列这个维度,而三维数组则类似多个二维数组堆叠在一起,形如一个立方体。

2. 本文主要指二维数组。

二维数组的创建

1. 二维数组相当于单层的嵌套数组。所以我们可以将单层嵌套列表传入np.array()方法创建一个二维数组。

2. ones()zeros()方法同样也能快速创建元素全为1和0的二维数组。与之前的区别在于,创建二维数组要传入一个包含行和列信息的元组。

import numpy as np

list_1=[[1, 2], [3, 4]]
print(list_1)
# [[1, 2], [3, 4]]

list_2=np.array([[1, 2], [3, 4]])
print(list_2)
# [[1 2]
#  [3 4]]
import numpy as np
list_1=np.ones((3,4)) # 3行4列
print(list_1)

#[[1. 1. 1. 1.]
# [1. 1. 1. 1.]
# [1. 1. 1. 1.]]

二维数组的性质

1. ndim:多维数组的维度个数。例如:二维数组的ndim为2;

2. shape:多维数组的形状。对于m行和n列的数组,它的shape将是(m,n)

3. size:多维数组中所有元素的个数。

4. dtype:多维数组中元素的类型。    

data = np.array([[1, 2, 3], [4, 5, 6]])

print('ndim:', data.ndim)
print('shape:', data.shape)
print('size:', data.size)
print('dtype:', data.dtype)

# ndim: 2
# shape: (2, 3)
# size: 6
# dtype: int64

二维数组的加减乘除

1. 二维数组间的加减乘除和一维数组间的基本一致,也是对应位置的元素进行计算。 

2. 维度一样的数组间可以进行计算的条件是形状一样,形状不一样的数组元素无法对应,因此无法计算,导致报错。

3. 广播原则:先补齐行轴,再往列轴方向进行复制。

二维数组的通用方法 

1. 二维数组的通用方法和一维数组的通用方法的基本用法类似,只是多了一个维度的数据。

2. 二维数组不仅可以对所有数据进行计算,还可以针对某个维度上的数据进行计算。

3. 这里就要引入一个概念---轴。轴和维度的概念是类似的,一维数组有 1 个轴,二维数组有 2 个轴,三维数组有 3 个轴等等。

import numpy as np
data = np.array([[1, 2], [5, 3], [4, 6]])

# 不指定 axis
print(data.max())
# 输出:6

# axis=0
print(data.max(axis=0))
# 输出:[5 6]

# axis=1
print(data.max(axis=1))
# 输出:[2 5 6]

二维数组的索引和分片

1. 二维数组的索引和分片同样和一维数组类似,只是在行索引的基础上再加上列索引。

2. 形如data[m,n],其中data是二维数组名,m是行索引或分片,n是列索引或分片。 

3. 如果省略第二个参数n的话表示获取所有列,data[0]就表示获取整个第一行,相当于data[0, :]

data = np.array([[1, 2], [3, 4], [5, 6]])

print(data[0, 1])
# 2

print(data[:, 0])
# [1 3 5]

print(data[1:3])
# [[3 4]
#  [5 6]]

布尔索引

1. 布尔索引,顾名思义就是用布尔值作为索引去获取需要的元素。 

2. and改用&or改用|not改用~,并且每个条件要用括号括起来。

data = np.array([[1, 2], [3, 4], [5, 6]])
print(data[data > 3])
# 输出:[4 5 6]

# 大于 3 或者不小于 2(即大于等于 2)
print(data[(data > 3) | ~(data < 2)])
# 输出:[2 3 4 5 6]

致谢

  感谢您花时间阅读这篇文章!如果您对本文有任何疑问、建议或是想要分享您的看法,请不要犹豫,在评论区留下您的宝贵意见。每一次互动都是我前进的动力,您的支持是我最大的鼓励。期待与您的交流,让我们共同成长,探索技术世界的无限可能!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值