首页 > 编程语言 >利用Python进行数据分析_Pandas_Numpy高级应用

利用Python进行数据分析_Pandas_Numpy高级应用

时间:2023-12-20 15:56:44浏览次数:37  
标签:means Python 数组 np array row Numpy Pandas mean

Numpy高级应用

1.ndarray对象内部机理

import pandas as pd
import numpy as np
from pandas import Series,DataFrame
import warnings
warnings.filterwarnings("ignore")

2.高级数组操作

arr = np.arange(8)
arr
array([0, 1, 2, 3, 4, 5, 6, 7])
arr_new = arr.reshape((4,2))
arr_new
array([[0, 1],
       [2, 3],
       [4, 5],
       [6, 7]])
arr
array([0, 1, 2, 3, 4, 5, 6, 7])
# 数组的合并
a1 = np.arange(6).reshape(2,3)
a2 = np.arange(6).reshape(2,3)
a1
array([[0, 1, 2],
       [3, 4, 5]])
a2
array([[0, 1, 2],
       [3, 4, 5]])
a = np.concatenate([a1,a2],axis=0)
a
array([[0, 1, 2],
       [3, 4, 5],
       [0, 1, 2],
       [3, 4, 5]])
b = np.concatenate([a1,a2],axis=1)
b
array([[0, 1, 2, 0, 1, 2],
       [3, 4, 5, 3, 4, 5]])
# 数组的拆分
b
array([[0, 1, 2, 0, 1, 2],
       [3, 4, 5, 3, 4, 5]])
c1,c2,c3 = np.hsplit(b,[2,4])
c1
array([[0, 1],
       [3, 4]])
c2
array([[2, 0],
       [5, 3]])
c3
array([[1, 2],
       [4, 5]])

3.广播

b
array([[0, 1, 2, 0, 1, 2],
       [3, 4, 5, 3, 4, 5]])
b.mean()
2.5
demened = b-b.mean()
demened
array([[-2.5, -1.5, -0.5, -2.5, -1.5, -0.5],
       [ 0.5,  1.5,  2.5,  0.5,  1.5,  2.5]])

广播的原则

如果两个数组的后缘维度 (trailing dimension,即从末尾开始算起的维度) 的轴长度相符或其中一方的长度为1,则认为它们是广播兼容的。广播会在缺失和 (或)长度为1的维度上进行。

c = np.arange(12).reshape((4,3))
c
array([[ 0,  1,  2],
       [ 3,  4,  5],
       [ 6,  7,  8],
       [ 9, 10, 11]])

mean(0) 表示沿着第一个轴(通常是行)计算均值。对于一个矩阵,这将返回每列的均值。
mean(1) 表示沿着第一个轴(通常是列)计算均值。对于一个矩阵,这将返回每行的均值。
例如, 如果 c 是一个 3x4 的矩阵,c.mean(0) 将返回一个包含 4 个元素的数组,每个元素是相应列的均值。

row_means_x = c.mean(1)
row_means_x
array([ 1.,  4.,  7., 10.])
row_means_y = c.mean(0)
row_means_y
array([4.5, 5.5, 6.5])
row_means_x.reshape((4,1))
array([[ 1.],
       [ 4.],
       [ 7.],
       [10.]])
demened = c - row_means_x.reshape((4,1))
demened
array([[-1.,  0.,  1.],
       [-1.,  0.,  1.],
       [-1.,  0.,  1.],
       [-1.,  0.,  1.]])

案例

import numpy as np

# 创建一个三维数组 A,形状为 (3, 1, 4)
A = np.array([[[1, 2, 3, 4]] * 1, [[5, 6, 7, 8]] * 1, [[9, 10, 11, 12]] * 1])

# 创建一个一维数组 B,形状为 (4,)
B = np.array([0, 1, 2, 3])

# 广播数组 B 到数组 A
result = A + B

# 输出结果
print(result)

[[[ 1  3  5  7]]

 [[ 5  7  9 11]]

 [[ 9 11 13 15]]]

假设我们有一个三维数组 A 和一个二维数组 B,它们的形状分别为 (3, 2, 4) 和 (2, 4)。我们将尝试对它们进行相加操作,利用广播规则。

import numpy as np

# 创建一个三维数组 A,形状为 (3, 2, 4)
A = np.random.randint(1, 10, size=(3, 2, 4))

# 创建一个二维数组 B,形状为 (2, 4)
B = np.array([[1, 2, 3, 4],
              [5, 6, 7, 8]])

# 广播数组 B 到数组 A
result = A + B

# 输出原始数组 A 和 B
print("Array A:")
print(A)
print("\nArray B:")
print(B)

# 输出广播后的结果数组
print(result)

Array A:
[[[7 6 2 3]
  [3 6 9 3]]

 [[4 6 6 9]
  [9 8 9 7]]

 [[3 7 1 7]
  [2 2 2 8]]]

Array B:
[[1 2 3 4]
 [5 6 7 8]]

Broadcasted Result:
[[[ 8  8  5  7]
  [ 8 12 16 11]]

 [[ 5  8  9 13]
  [14 14 16 15]]

 [[ 4  9  4 11]
  [ 7  8  9 16]]]

标签:means,Python,数组,np,array,row,Numpy,Pandas,mean
From: https://www.cnblogs.com/zhouwp/p/17916666.html

相关文章

  • Python中配置Excel导出模板
    定义Excel列对象classExcelColumn:"""定义Excel中的列参数:name(str):列的名称。width(int|None,可选):列的宽度。默认为None。required(bool,可选):指示列是否必需。默认为False。mapping_factory(Callable......
  • Python语言实现两台计算机用TCP协议跨局域网通信
    成果展示:(这张图是在我本地电脑上用pycharm运行两个程序测试,实际可以在两台电脑上分别运行。)设备要求和实现的功能:实现的功能:跨局域网通信(仅支持两台计算机)跨局域网收发小文件,支持缓存在服务器,再一键接收(仅支持两台计算机)使用方法:在服务器上运行server.py程序,在两台客户......
  • python中的 时间、日期写法。
    python打印当前日期时间 一、打印 带日期与时间点 方法一:使用datetime模块:importdatetimenow=datetime.datetime.now()print(now)效果如下: 方法二:使用time模块:importtimenow=time.strftime("%Y-%m-%d%H:%M:%S",time.localtime())print(now) ......
  • 提高Python开发效率的实用方法
    Python作为一种简洁而强大的编程语言,广泛应用于各种领域的软件开发。提高Python开发效率是开发者们关注的重要课题。本文将分享一些实用的方法,帮助您在Python开发中更高效地完成任务,提高代码质量和开发速度。1.使用虚拟环境:在项目开发中,使用虚拟环境是一种良好的实践。虚拟环境可以......
  • 使用Python进行Firefox证书上传和删除证书的步骤
    在Web开发和测试过程中,有时需要在Firefox浏览器中管理证书,包括上传证书和删除证书。本文将介绍如何使用Python和Selenium库进行这些操作,以便更方便地处理证书管理。1.安装Selenium库和WebDriver:首先,确保已安装Selenium库和相应浏览器的WebDriver。可以使用以下命令安装Selenium:```b......
  • Python爬虫框架推荐及其特点
    在网络爬虫开发中,选择适合的爬虫框架可以大大提高开发效率和爬取数据的质量。Python作为一种广泛应用于爬虫开发的编程语言,有许多优秀的爬虫框架可供选择。本文将介绍几个好用的Python爬虫框架,并列举它们的特点,帮助您选择适合自己的框架。1.Scrapy:Scrapy是一个强大的开源爬虫框架,被......
  • CentOS安装Python3
    前置准备检查是否已经安装Python3:命令行直接输入Python3下载Python3的安装包https://www.python.org/ftp/python/安装安装依赖yuminstallzlib-develbzip2-devellibffi-developenssl-develncurses-develsqlite-develreadline-develtk-develgccmake下载Pyth......
  • 利用Python进行数据分析_Pandas_数据规整
    数据规整1.时间序列以及截面对齐importpandasaspdimportnumpyasnpfrompandasimportSeries,DataFrameimportwarningswarnings.filterwarnings("ignore")#设置一个日期范围date_range=pd.date_range(start="2023-01-01",end="2023-01-10",freq=......
  • 分类模型评估(混淆矩阵, precision, recall, f1-score)的原理和Python实现
    混淆矩阵当我们已经获取到一个分类模型的预测值,可以通过不同指标来进行评估。往往衡量二分类模型是基于以下的混淆矩阵概念:TruePositive:真实值为正、预测值为正(真阳性)FalsePositive:真实值为负、预测值为正(假阳性)FalseNegative:真实值为正、预测值为负(假阴性)TrueNegative......
  • python-docx删除文档部分内容
    1fromdocx.documentimportDocumentas_Document2fromdocx.oxml.text.paragraphimportCT_P3fromdocx.oxml.tableimportCT_Tbl4fromdocx.tableimport_Cell,Table5fromdocx.text.paragraphimportParagraph678defword_cut(document):9......