numpy+pandas 基础学习

本文介绍如何使用NumPy创建数组及数据类型转换,并通过实例演示了Pandas中Series和DataFrame的基本操作,包括构建、查询及数据更新等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#-*- coding:utf-8 -*-
import numpy as np;

data1=[1,2,3,4,5]
array1=np.array(data1)

#创建数组/矩阵
# 使用numpy中的array函数
data2=[[1,3,4],[2,5,6]]
array2=np.array(data2)

#查看变量的数据类型:dtype
array2.dtype

#转换数据格式 astype
array2_str=array2.astype('str')
array2_str.dtype

## pandas 有两个数据结构:Series和 DataFrame
## Series类似一维数组,和array很像,由一组数据和数据标签(类似索引)组成
## Series 能自动对齐索引,如果对不上,会NaN表示缺失
import pandas as pd;
s=pd.Series([1,2,3,4]);
s1=pd.Series([1,2,3,4],index=['a','b','c','d'])
s.index
s[1]
s[[1,2]]

#字典
d={'qiulu':'handsome',
   'lulu':'graceful'
   }
s2=pd.Series(d)

## DataFrame是一个表格型的数据结构,类似一张excel表格或者SQL
##最常用的构建DataFrame的方法是:传入一个字典
dict={
    'name':['张三','李四','王五','赵六'],
    'sex':['男','男','男','女'],
    'age':[18,19,20,21]
}

df=pd.DataFrame(dict)

df.info()  ## 查看数据类型
df.age.astype('str')
df['age']

df['age']=[19,20,21,22]
df['country']='china'

# DataFrame查询会特别方便
df[df.age==20]
df[(df.age>=20) & (df.sex=='男')]

# query 可以类似SQL的查询方式
df.query('(age>18 and sex=="男") or (age<21 and sex=="女")')

df1=pd.DataFrame(np.arange(4).reshape(2,2),columns=['a','b'])
df2=pd.DataFrame(np.arange(12).reshape(2,6),columns=['a','b','c','d','e','f'])

## iloc  序号
## loc   标签
## ix   行+列,序号标签都行

 

posted on 2017-08-16 12:59 Suckseedeva 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/skyEva/p/7372858.html

### 关于 NumPyPandas 的教程使用指南 以下是有关 NumPyPandas基础教程以及高级功能的详细介绍: #### 一、NumPy 基础进阶 NumPyPython 中用于科学计算的核心库之一,它提供了一个强大的多维数组对象 `ndarray`,并支持高效的向量化操作。 1. **创建数组** 可以通过多种方式创建 NumPy 数组,例如从列表转换而来。 ```python import numpy as np # 创建一个简单的一维数组 array_1d = np.array([1, 2, 3, 4]) # 创建二维数组 array_2d = np.array([[1, 2], [3, 4]]) ``` 2. **基本属性** 数组具有许多有用的属性,如形状 (`shape`)、维度 (`ndim`) 和大小 (`size`)。 ```python print("Shape:", array_2d.shape) # 输出 (2, 2)[^4] print("Dimensions:", array_2d.ndim) # 输出 2 print("Size:", array_2d.size) # 输出 4 ``` 3. **数学运算** NumPy 支持广泛的数学函数和统计工具,可以快速完成复杂的数值计算。 ```python data_array = np.array([1, 2, 3, 4, 5]) mean_value = np.mean(data_array) # 平均值[^5] std_deviation = np.std(data_array) # 标准差 sum_value = np.sum(data_array) # 总和 print("Mean:", mean_value) print("Standard Deviation:", std_deviation) print("Sum:", sum_value) ``` --- #### 二、Pandas 基础进阶 Pandas 是基于 NumPy 构建的强大数据分析库,其核心数据结构是 `Series` 和 `DataFrame`。 1. **导入模块** 按照惯例,通常将 Pandas 导入为 `pd`,并将 NumPy 导入为 `np`。 ```python import pandas as pd import numpy as np ``` 2. **创建 DataFrame** Pandas 的 `DataFrame` 类似于电子表格或 SQL 表格,由行和列组成。 ```python df_example = pd.DataFrame({ "Name": ["Alice", "Bob", "Charlie"], "Age": [25, 30, 35], "City": ["New York", "Los Angeles", "Chicago"] }) print(df_example) ``` 3. **访问数据** 使用标签索引 `.loc[]` 或位置索引 `.iloc[]` 来访问特定的数据子集。 ```python # 获取第 0 行的所有数据 row_data = df_example.loc[0] # 获取 'Age' 列的所有数据 age_column = df_example["Age"] ``` 4. **数据清洗** Pandas 提供了许多方法来处理缺失值(NaN),例如填充或删除这些值。 ```python # 替换 NaN 值为指定值 filled_df = df_example.fillna(value=0) # 删除含有 NaN 的行 clean_df = df_example.dropna() ``` 5. **分组聚合** 使用 `groupby()` 方法可以根据某些键对数据进行分组,并应用各种汇总函数。 ```python grouped_data = df_example.groupby("City").mean()[^2] print(grouped_data) ``` 6. **分类数据** Pandas 还支持分类数据类型,这对于存储有限数量的独特类别非常有用。 ```python categorical_col = pd.Categorical(["a", "b", "c", "a"], categories=["a", "b", "c"]) print(categorical_col.describe())[^3] ``` 7. **可空整数数据类型** 在 Pandas 2.x 版本中引入了新的可空整数数据类型,解决了传统整型无法表示缺失值的问题。 ```python nullable_int_series = pd.Series([1, None, 3], dtype="Int64") print(nullable_int_series) ``` --- ### 示例综合代码 以下是一个结合 NumPyPandas 的完整示例: ```python import numpy as np import pandas as pd # 创建随机数据 data_matrix = np.random.rand(4, 3) # 转换为 DataFrame df_random = pd.DataFrame( data=data_matrix, columns=["A", "B", "C"], index=["Row1", "Row2", "Row3", "Row4"] ) print("Random Data Frame:") print(df_random) # 统计分析 summary_stats = df_random.describe() print("\nSummary Statistics:") print(summary_stats) ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值