返回

数据结构:DataFrame、Series、array、tensor的创建和相互转换

见解分享

前言

数据科学领域中,我们经常会遇到各种各样的数据结构,不同的数据结构有着不同的特点和适用场景。本文将重点介绍四种常见的数据结构:DataFrame、Series、array和tensor,并探讨它们的创建和相互转换方法。

1. DataFrame

DataFrame是pandas库中的一种表状数据结构,它由一系列有序的列组成,每个列包含同类型的数据。DataFrame通常用于存储和操作表格数据,例如数据集中的观测值和特征值。

创建DataFrame:

  • 从字典创建:```python
    df = pd.DataFrame({'name': ['John', 'Jane'], 'age': [25, 30]})
* 从列表创建:```python
df = pd.DataFrame([['John', 25], ['Jane', 30]])
  • 从CSV文件读取:```python
    df = pd.read_csv('data.csv')

### 2. Series

Series是pandas库中的一种 одномерный 数据结构,它由一个有序的索引和一个值序列组成。Series通常用于存储和操作一维数据,例如时间序列或类别标签。

**创建Series:** 

* 从字典创建:```python
s = pd.Series({'name': ['John', 'Jane'], 'age': [25, 30]})
  • 从列表创建:```python
    s = pd.Series(['John', 'Jane'])

### 3. array

array是numpy库中的一种多维同质数据结构,它由一组元素组成,这些元素具有相同的类型和维度。array通常用于存储和操作数值数据,例如图像像素或矩阵。

**创建array:** 

* 从列表创建:```python
arr = np.array([[1, 2, 3], [4, 5, 6]])
  • 从标量创建:```python
    arr = np.array(10)
* 使用numpy函数创建:```python
arr = np.random.rand(3, 3)  # 创建3x3的随机矩阵

4. tensor

tensor是TensorFlow和PyTorch等深度学习框架中的一种多维数据结构,它可以表示任意形状和类型的数据。tensor通常用于存储和操作图像、文本和音频等复杂数据。

创建tensor:

  • 从numpy array创建:```python
    import tensorflow as tf
    tensor = tf.convert_to_tensor(arr)
* 从列表创建:```python
tensor = tf.convert_to_tensor([[1, 2, 3], [4, 5, 6]])
  • 使用TensorFlow函数创建:```python
    tensor = tf.random.normal([3, 3]) # 创建3x3的随机正态分布张量

### 5. 相互转换

**DataFrame to Series:** 

* ```python
series = df['name']  # 选择DataFrame中的一列

Series to DataFrame:

df = pd.DataFrame(series) # 创建一个只包含该Series的新DataFrame


**array to DataFrame:** 

* ```python
df = pd.DataFrame(arr)  # 将array转换为DataFrame

DataFrame to array:

arr = df.values # 获取DataFrame中所有值的array


**array to tensor:** 

* ```python
tensor = tf.convert_to_tensor(arr)  # 将array转换为tensor

tensor to array:

arr = tensor.numpy() # 将tensor转换为array


### 结论

DataFrame、Series、array和tensor是数据科学和深度学习中常用的数据结构,每种结构都有其特定的用途和优势。理解它们的创建和相互转换方法对于有效地操作和分析数据至关重要。通过掌握这些数据结构,我们可以从数据中提取有意义的见解,推动决策和创新。