Python核心语法-Numpy

一、Jupyter

Jupyter 是一个开源的交互式计算环境,广泛应用于数据科学、机器学习、科学研究等领域,主要组件有Jupyter Notebook和Jupyter Lab。JupyterLab作为Jupyter Notebook 的继承者,提供了更现代化和功能丰富的界面。JupyterLab的多文档界面、内置协作功能和扩展系统使其成为数据科学家和研究人员的首选。

1.1 使用Jupyter

conda 命令:

命令提示符中输入:jupyter lab或jupyter notebook

bash 复制代码
jupyter lab

新建notebook:

1.2 PyCharm中使用Jupyter

设置conda环境,新建Jupyter notebook:运行

二、numpy

2.1 什么是numpy

numpy是Python中科学计算的基础包。它是一个Python库,提供多维数组对象、各种派生对象(例如掩码数组和矩阵)以及用于对数组进行快速操作的各种方法,包括数学、逻辑、形状操作、排序、选择、I/O 、离散傅里叶变换、基本线性代数、基本统计运算、随机模拟等等。

numpy的部分功能如下:

  • ndarray,一个具有矢量算术运算和复杂广播能力的快速且节省空间的多维数组。
  • 用于对整组数据进行快速运算的标准数学函数(无需编写循环)。
  • 用于读写磁盘数据的工具以及用于操作内存映射文件的工具。
  • 线性代数、随机数生成以及傅里叶变换功能。
  • 用于集成由C、C++、Fortran等语言编写的代码的API。

2.2 Numpy array属性

安装numpy库

python 复制代码
import numpy as np  # 导入numpy

a = np.array([[1, 2, 3], [4, 5, 6]])  # 创建一个二维数组
print(a)
print(a.ndim)  # 维度  (2, 3)
print(a.shape)  # 形状  int64
print(a.size)  # 元素个数 6
print(a.dtype)  # 数据类型 2
print(a.itemsize)  # 每个元素字节数大小 8
print(type(arr)) #  # 每个元素字节数大小 <class 'numpy.ndarray'>

2.3 Numpy array创建方式

array():将输入数据转换为ndarray,会进行copy。

asarray():将输入数据转换为ndarray,如果输入本身是ndarray则不会进行copy。

python 复制代码
import numpy as np

data = [1,2,3]
print(f"元数据地址为:{id(data)}")
arr = np.array(data)
print(f"arr1地址为:{id(arr)}")
print(f"arr1数组数据为:{arr}")

# print("-" * 20)
arr2 = np.array(arr)
print(f"arr2地址为:{id(arr2)}")
print(f"arr2数组数据为:{arr2}")

# print("-" * 20)
arr3 = np.asarray(arr)
print(f"arr3地址为:{id(arr3)}")
print(f"arr3数组数据为:{arr3}")

arr4 = np.zeros((2, 5))  # 创建全0数组
# [[0. 0. 0. 0. 0.]
#  [0. 0. 0. 0. 0.]]

print(f"arr4数组数据为:{arr4}")

三、pandas

3.1 pandas

Pandas 是一个开源的数据分析和数据处理库,它是基于 Python 编程语言的。

Pandas 提供了易于使用的数据结构和数据分析工具,特别适用于处理结构化数据,如表格型数据(类似于Excel表格)。

Pandas 是数据科学和分析领域中常用的工具之一,它使得用户能够轻松地从各种数据源中导入数据,并对数据进行高效的操作和分析。

用得最多的pandas对象是Series,一个一维的标签化数组对象,另一个是DataFrame,它是一个面向列的二维表结构。

3.2 Pandas数据结构-Series

Series 是 Pandas 中的一个核心数据结构,类似于一个一维的数组,具有数据和索引。

Series 可以存储任何数据类型(整数、浮点数、字符串等),并通过标签(索引)来访问元素。Series 的数据结构是非常有用的,因为它可以处理各种数据类型,同时保持了高效的数据操作能力,比如可以通过标签来快速访问和操作数据。

1)Series 特点:

  • 一维数组:Series 中的每个元素都有一个对应的索引值。
  • 索引: 每个数据元素都可以通过标签(索引)来访问,默认情况下索引是从 0 开始的整数,但你也可以自定义索引。
  • 数据类型: Series 可以容纳不同数据类型的元素,包括整数、浮点数、字符串、Python 对象等。
  • 大小不变性:Series 的大小在创建后是不变的,但可以通过某些操作(如 append 或 delete)来改变。
  • 操作:Series 支持各种操作,如数学运算、统计分析、字符串处理等。
  • 缺失数据:Series 可以包含缺失数据,Pandas 使用NaN(Not a Number)来表示缺失或无值。
  • 自动对齐:当对多个 Series 进行运算时,Pandas 会自动根据索引对齐数据,这使得数据处理更加高效。

我们可以使用 Pandas 库来创建一个 Series 对象,并且可以为其指定索引(Index)、名称(Name)以及值(Values):

Series的创建:

安装pandas库;

python 复制代码
import pandas as pd

# 直接通过列表创建Series
s = pd.Series([1,2,3,4])


# 通过列表创建Series时指定索引
s = pd.Series(data = [1,2,3,4],index = ['a','b','c','d'])

# 通过列表创建Series时指定索引和名称
s = pd.Series([1,2,3,4],index = ['a','e','c','d'],name = 'Series_name')

# 通过字典创建Series对象
dict = {"a":1,"g":2,"c":3,"d":4}
s = pd.Series(dict,name = 'Series_name')

Series的常用属性:

3.3 Pandas数据结构-DataFrame

DataFrame是Pandas 中的另一个核心数据结构,类似于一个二维的表格或数据库中的数据表。它是一个表格型的数据结构,它含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔型值),既有行索引也有列索引。

DataFrame中的数据是以一个或多个二维块存放的(而不是列表、字典或别的一维数据结构)。它可以被看做由Series组成的字典(共同用一个索引)。提供了各种功能来进行数据访问、筛选、分割、合并、重塑、聚合以及转换等操作,广泛用于数据分析、清洗、转换、可视化等任务。

DataFrame的创建:

安装pandas库

1)直接通过字典创建DataFrame

python 复制代码
import pandas as pd
df = pd.DataFrame({"id": [101, 102, 103], "name": ["张三", "李四", "王五"], "age": [20, 30, 40]})

id_series = pd.Series([1,2,3])
name_series = pd.Series(['zs','ls','ww'])
age_series = pd.Series([22,33,25])

df = pd.DataFrame({"id":id_series, "name":name_series, "age":age_series})

df = pd.DataFrame({"id": [1001, 1002, 1003], "name": ["张三", "李四", "王王"], "age": [20, 30, 30]})
print(df)

2)通过字典创建时指定列的顺序和行索引

python 复制代码
df = pd.DataFrame({"name": ["张三", "李四", "王王"], "age": [20, 30, 30]},index=[1001,1002,1003],columns=["age","name"])
print(df)

DataFrame的常用属性:

相关推荐
秋96 小时前
从 Python 后端工程师转型 AI Engineer(AI 工程化)的完整补课清单(2026实战版)
开发语言·人工智能·python
啦啦啦_99996 小时前
5. 迁移学习
人工智能·机器学习·迁移学习
A.说学逗唱的Coke6 小时前
【AI·Coding】TDD × SDD × AI Coding:从“测试驱动“到“规范驱动“的智能协作实践
人工智能·驱动开发·tdd
云烟成雨TD6 小时前
Spring AI Alibaba 1.x 系列【78】沙箱(Sandbox)
java·人工智能·spring
tq10867 小时前
基于SLIP的防幻觉的指南
人工智能
甲维斯7 小时前
Kimi版超级玛丽效果“惊人”,配额不足5厘米!
前端·人工智能
console.log('npc')8 小时前
AI前端工程与生成式UI学习路线
前端·人工智能·ui
秋99 小时前
3年经验Python后端转AI Engineer:3个月实战转型计划(2026版)
开发语言·人工智能·python
圣殿骑士-Khtangc9 小时前
GPT-5.5 技术深度解析与企业级生产落地实战:从幻觉率下降到百万Token工程化
人工智能·gpt
2601_961963389 小时前
技术解剖:哈希值、区块链与CA认证如何守护电子合同安全?
网络·人工智能·安全·区块链·智能合约·政务