• PyTorch学习:使用pytorch进行数据预处理


    本文基于jupiter,将从如何读取数据集、对数据集处理缺失值、将数据转为张量形式来完成对数据的预处理。

    其中用到的数据集有:house_tiny.csv、boston_house_prices.csv、Iris.txt

    数据集: https://pan.baidu.com/s/17-xn66iShCXQCqZREo51Zw?pwd=5q6s

     一、读取数据集

    由于我未找到鸢尾花iris数据集的csv或者xlsx形式,所以对该数据集进行加工

    1.代码

    1. import torch
    2. import numpy as np
    3. import pandas as pd
    4. house_tiny=pd.read_csv('house_tiny.csv')
    5. boston_house_prices=pd.read_csv('boston_house_prices.csv')
    6. # 读取文本文件
    7. with open('iris(1).txt', 'r') as file:
    8. lines = file.readlines()
    9. # 分割每行的数据
    10. data = [line.strip().split('\t') for line in lines]
    11. # 创建 DataFrame 对象
    12. df = pd.DataFrame(data)
    13. # 将 DataFrame 保存为 Excel 文件
    14. df.to_csv('iris.csv', index=False)

    将iris数据集存为iris.csv形式。

    2.结果

    如下图所示,将这几个数据集都成功读入

     

    二、对数据进行缺失值处理

    1.代码

    我使用的是用平均数来填补缺失值,同时将处理好的数据集放进一个新的csv文件

    1. # 使用平均数填充缺失值
    2. house_tiny_fill=house_tiny.fillna(house_tiny.mean())
    3. boston_fill=boston_house_prices.fillna(boston_house_prices.mean())
    4. iris_fill = df.fillna(df.mean())
    5. # 将补过缺失值的数据保存为新的 Excel 文件
    6. house_tiny_fill.to_csv('house_tiny_fill.csv', index=False)
    7. boston_fill.to_csv('boston_fill.csv',index=False)
    8. iris_fill.to_csv('iris_fill.csv',index=False)

    2.结果

    以house_tiny的数据为例:

    处理前:

    处理后:

    三、将数据转为张量形式

    先使用 astype() 方法将 numpy.object_ 类型的数据转换为 float64 类型的数据,然后再创建张量。

    将数据转为张量,我遇到一个问题:

    也就是我的house_tiny数据集中有一列'pave'无法转成float64。

    所以再对数据进行处理,然后去除掉’pave‘这列在进行tensor转换

    1.代码

    1. #取house_tiny_fill的数值
    2. house_tiny_data = pd.read_csv('house_tiny_fill.csv', usecols=['NumRooms', 'Price'])
    3. # 将两列数据存储到 NumPy 数组中
    4. house_tiny_array = np.column_stack((house_tiny_data['NumRooms'].to_numpy(), house_tiny_data['Price'].to_numpy()))
    5. #转成张量
    6. tensor_house_tiny = torch.tensor(house_tiny_data.values)
    7. tensor_iris = torch.tensor(iris.values)
    8. tensor_boston = torch.tensor(boston_fill.values)

    2.结果

    数据处理前:

    数据处理后:

    由此就可成功转为tensor

    四、张量输出

    1.代码

    1. print('tensor_house_tiny',tensor_house_tiny)
    2. print('tensor_iris',tensor_iris)
    3. print('tensor_boston_house_prices',tensor_boston_house_prices)

    2.结果

    1. tensor_house_tiny tensor([[2.0000e+00, 1.2750e+05],
    2. [2.0000e+00, 1.0600e+05],
    3. [4.0000e+00, 1.7810e+05],
    4. [2.0000e+00, 1.4000e+05]], dtype=torch.float64)
    5. tensor_iris tensor([[5.1000, 3.5000, 1.4000, 0.2000, 1.0000],
    6. [4.9000, 3.0000, 1.4000, 0.2000, 1.0000],
    7. [4.7000, 3.2000, 1.3000, 0.2000, 1.0000],
    8. [4.6000, 3.1000, 1.5000, 0.2000, 1.0000],
    9. [5.0000, 3.6000, 1.4000, 0.2000, 1.0000],
    10. [5.4000, 3.9000, 1.7000, 0.4000, 1.0000],
    11. [4.6000, 3.4000, 1.4000, 0.3000, 1.0000],
    12. [5.0000, 3.4000, 1.5000, 0.2000, 1.0000],
    13. [4.4000, 2.9000, 1.4000, 0.2000, 1.0000],
    14. [4.9000, 3.1000, 1.5000, 0.1000, 1.0000],
    15. [5.4000, 3.7000, 1.5000, 0.2000, 1.0000],
    16. [4.8000, 3.4000, 1.6000, 0.2000, 1.0000],
    17. [4.8000, 3.0000, 1.4000, 0.1000, 1.0000],
    18. [4.3000, 3.0000, 1.1000, 0.1000, 1.0000],
    19. [5.8000, 4.0000, 1.2000, 0.2000, 1.0000],
    20. [5.7000, 4.4000, 1.5000, 0.4000, 1.0000],
    21. [5.4000, 3.9000, 1.3000, 0.4000, 1.0000],
    22. [5.1000, 3.5000, 1.4000, 0.3000, 1.0000],
    23. [5.7000, 3.8000, 1.7000, 0.3000, 1.0000],
    24. [5.1000, 3.8000, 1.5000, 0.3000, 1.0000],
    25. [5.4000, 3.4000, 1.7000, 0.2000, 1.0000],
    26. [5.1000, 3.7000, 1.5000, 0.4000, 1.0000],
    27. [4.6000, 3.6000, 1.0000, 0.2000, 1.0000],
    28. [5.1000, 3.3000, 1.7000, 0.5000, 1.0000],
    29. [4.8000, 3.4000, 1.9000, 0.2000, 1.0000],
    30. [5.0000, 3.0000, 1.6000, 0.2000, 1.0000],
    31. [5.0000, 3.4000, 1.6000, 0.4000, 1.0000],
    32. [5.2000, 3.5000, 1.5000, 0.2000, 1.0000],
    33. [5.2000, 3.4000, 1.4000, 0.2000, 1.0000],
    34. [4.7000, 3.2000, 1.6000, 0.2000, 1.0000],
    35. [4.8000, 3.1000, 1.6000, 0.2000, 1.0000],
    36. [5.4000, 3.4000, 1.5000, 0.4000, 1.0000],
    37. [5.2000, 4.1000, 1.5000, 0.1000, 1.0000],
    38. [5.5000, 4.2000, 1.4000, 0.2000, 1.0000],
    39. [4.9000, 3.1000, 1.5000, 0.1000, 1.0000],
    40. [5.0000, 3.2000, 1.2000, 0.2000, 1.0000],
    41. [5.5000, 3.5000, 1.3000, 0.2000, 1.0000],
    42. [4.9000, 3.1000, 1.5000, 0.1000, 1.0000],
    43. [4.4000, 3.0000, 1.3000, 0.2000, 1.0000],
    44. [5.1000, 3.4000, 1.5000, 0.2000, 1.0000],
    45. [5.0000, 3.5000, 1.3000, 0.3000, 1.0000],
    46. [4.5000, 2.3000, 1.3000, 0.3000, 1.0000],
    47. [4.4000, 3.2000, 1.3000, 0.2000, 1.0000],
    48. [5.0000, 3.5000, 1.6000, 0.6000, 1.0000],
    49. [5.1000, 3.8000, 1.9000, 0.4000, 1.0000],
    50. [4.8000, 3.0000, 1.4000, 0.3000, 1.0000],
    51. [5.1000, 3.8000, 1.6000, 0.2000, 1.0000],
    52. [4.6000, 3.2000, 1.4000, 0.2000, 1.0000],
    53. [5.3000, 3.7000, 1.5000, 0.2000, 1.0000],
    54. [5.0000, 3.3000, 1.4000, 0.2000, 1.0000],
    55. [7.0000, 3.2000, 4.7000, 1.4000, 2.0000],
    56. [6.4000, 3.2000, 4.5000, 1.5000, 2.0000],
    57. [6.9000, 3.1000, 4.9000, 1.5000, 2.0000],
    58. [5.5000, 2.3000, 4.0000, 1.3000, 2.0000],
    59. [6.5000, 2.8000, 4.6000, 1.5000, 2.0000],
    60. [5.7000, 2.8000, 4.5000, 1.3000, 2.0000],
    61. [6.3000, 3.3000, 4.7000, 1.6000, 2.0000],
    62. [4.9000, 2.4000, 3.3000, 1.0000, 2.0000],
    63. [6.6000, 2.9000, 4.6000, 1.3000, 2.0000],
    64. [5.2000, 2.7000, 3.9000, 1.4000, 2.0000],
    65. [5.0000, 2.0000, 3.5000, 1.0000, 2.0000],
    66. [5.9000, 3.0000, 4.2000, 1.5000, 2.0000],
    67. [6.0000, 2.2000, 4.0000, 1.0000, 2.0000],
    68. [6.1000, 2.9000, 4.7000, 1.4000, 2.0000],
    69. [5.6000, 2.9000, 3.6000, 1.3000, 2.0000],
    70. [6.7000, 3.1000, 4.4000, 1.4000, 2.0000],
    71. [5.6000, 3.0000, 4.5000, 1.5000, 2.0000],
    72. [5.8000, 2.7000, 4.1000, 1.0000, 2.0000],
    73. [6.2000, 2.2000, 4.5000, 1.5000, 2.0000],
    74. [5.6000, 2.5000, 3.9000, 1.1000, 2.0000],
    75. [5.9000, 3.2000, 4.8000, 1.8000, 2.0000],
    76. [6.1000, 2.8000, 4.0000, 1.3000, 2.0000],
    77. [6.3000, 2.5000, 4.9000, 1.5000, 2.0000],
    78. [6.1000, 2.8000, 4.7000, 1.2000, 2.0000],
    79. [6.4000, 2.9000, 4.3000, 1.3000, 2.0000],
    80. [6.6000, 3.0000, 4.4000, 1.4000, 2.0000],
    81. [6.8000, 2.8000, 4.8000, 1.4000, 2.0000],
    82. [6.7000, 3.0000, 5.0000, 1.7000, 2.0000],
    83. [6.0000, 2.9000, 4.5000, 1.5000, 2.0000],
    84. [5.7000, 2.6000, 3.5000, 1.0000, 2.0000],
    85. [5.5000, 2.4000, 3.8000, 1.1000, 2.0000],
    86. [5.5000, 2.4000, 3.7000, 1.0000, 2.0000],
    87. [5.8000, 2.7000, 3.9000, 1.2000, 2.0000],
    88. [6.0000, 2.7000, 5.1000, 1.6000, 2.0000],
    89. [5.4000, 3.0000, 4.5000, 1.5000, 2.0000],
    90. [6.0000, 3.4000, 4.5000, 1.6000, 2.0000],
    91. [6.7000, 3.1000, 4.7000, 1.5000, 2.0000],
    92. [6.3000, 2.3000, 4.4000, 1.3000, 2.0000],
    93. [5.6000, 3.0000, 4.1000, 1.3000, 2.0000],
    94. [5.5000, 2.5000, 4.0000, 1.3000, 2.0000],
    95. [5.5000, 2.6000, 4.4000, 1.2000, 2.0000],
    96. [6.1000, 3.0000, 4.6000, 1.4000, 2.0000],
    97. [5.8000, 2.6000, 4.0000, 1.2000, 2.0000],
    98. [5.0000, 2.3000, 3.3000, 1.0000, 2.0000],
    99. [5.6000, 2.7000, 4.2000, 1.3000, 2.0000],
    100. [5.7000, 3.0000, 4.2000, 1.2000, 2.0000],
    101. [5.7000, 2.9000, 4.2000, 1.3000, 2.0000],
    102. [6.2000, 2.9000, 4.3000, 1.3000, 2.0000],
    103. [5.1000, 2.5000, 3.0000, 1.1000, 2.0000],
    104. [5.7000, 2.8000, 4.1000, 1.3000, 2.0000],
    105. [6.3000, 3.3000, 6.0000, 2.5000, 3.0000],
    106. [5.8000, 2.7000, 5.1000, 1.9000, 3.0000],
    107. [7.1000, 3.0000, 5.9000, 2.1000, 3.0000],
    108. [6.3000, 2.9000, 5.6000, 1.8000, 3.0000],
    109. [6.5000, 3.0000, 5.8000, 2.2000, 3.0000],
    110. [7.6000, 3.0000, 6.6000, 2.1000, 3.0000],
    111. [4.9000, 2.5000, 4.5000, 1.7000, 3.0000],
    112. [7.3000, 2.9000, 6.3000, 1.8000, 3.0000],
    113. [6.7000, 2.5000, 5.8000, 1.8000, 3.0000],
    114. [7.2000, 3.6000, 6.1000, 2.5000, 3.0000],
    115. [6.5000, 3.2000, 5.1000, 2.0000, 3.0000],
    116. [6.4000, 2.7000, 5.3000, 1.9000, 3.0000],
    117. [6.8000, 3.0000, 5.5000, 2.1000, 3.0000],
    118. [5.7000, 2.5000, 5.0000, 2.0000, 3.0000],
    119. [5.8000, 2.8000, 5.1000, 2.4000, 3.0000],
    120. [6.4000, 3.2000, 5.3000, 2.3000, 3.0000],
    121. [6.5000, 3.0000, 5.5000, 1.8000, 3.0000],
    122. [7.7000, 3.8000, 6.7000, 2.2000, 3.0000],
    123. [7.7000, 2.6000, 6.9000, 2.3000, 3.0000],
    124. [6.0000, 2.2000, 5.0000, 1.5000, 3.0000],
    125. [6.9000, 3.2000, 5.7000, 2.3000, 3.0000],
    126. [5.6000, 2.8000, 4.9000, 2.0000, 3.0000],
    127. [7.7000, 2.8000, 6.7000, 2.0000, 3.0000],
    128. [6.3000, 2.7000, 4.9000, 1.8000, 3.0000],
    129. [6.7000, 3.3000, 5.7000, 2.1000, 3.0000],
    130. [7.2000, 3.2000, 6.0000, 1.8000, 3.0000],
    131. [6.2000, 2.8000, 4.8000, 1.8000, 3.0000],
    132. [6.1000, 3.0000, 4.9000, 1.8000, 3.0000],
    133. [6.4000, 2.8000, 5.6000, 2.1000, 3.0000],
    134. [7.2000, 3.0000, 5.8000, 1.6000, 3.0000],
    135. [7.4000, 2.8000, 6.1000, 1.9000, 3.0000],
    136. [7.9000, 3.8000, 6.4000, 2.0000, 3.0000],
    137. [6.4000, 2.8000, 5.6000, 2.2000, 3.0000],
    138. [6.3000, 2.8000, 5.1000, 1.5000, 3.0000],
    139. [6.1000, 2.6000, 5.6000, 1.4000, 3.0000],
    140. [7.7000, 3.0000, 6.1000, 2.3000, 3.0000],
    141. [6.3000, 3.4000, 5.6000, 2.4000, 3.0000],
    142. [6.4000, 3.1000, 5.5000, 1.8000, 3.0000],
    143. [6.0000, 3.0000, 4.8000, 1.8000, 3.0000],
    144. [6.9000, 3.1000, 5.4000, 2.1000, 3.0000],
    145. [6.7000, 3.1000, 5.6000, 2.4000, 3.0000],
    146. [6.9000, 3.1000, 5.1000, 2.3000, 3.0000],
    147. [5.8000, 2.7000, 5.1000, 1.9000, 3.0000],
    148. [6.8000, 3.2000, 5.9000, 2.3000, 3.0000],
    149. [6.7000, 3.3000, 5.7000, 2.5000, 3.0000],
    150. [6.7000, 3.0000, 5.2000, 2.3000, 3.0000],
    151. [6.3000, 2.5000, 5.0000, 1.9000, 3.0000],
    152. [6.5000, 3.0000, 5.2000, 2.0000, 3.0000],
    153. [6.2000, 3.4000, 5.4000, 2.3000, 3.0000],
    154. [5.9000, 3.0000, 5.1000, 1.8000, 3.0000]], dtype=torch.float64)
    155. tensor_boston_house_prices tensor([[6.3200e-03, 1.8000e+01, 2.3100e+00, ..., 1.5300e+01, 4.9800e+00,
    156. 2.4000e+01],
    157. [2.7310e-02, 0.0000e+00, 7.0700e+00, ..., 1.7800e+01, 9.1400e+00,
    158. 2.1600e+01],
    159. [2.7290e-02, 0.0000e+00, 7.0700e+00, ..., 1.7800e+01, 4.0300e+00,
    160. 3.4700e+01],
    161. ...,
    162. [6.0760e-02, 0.0000e+00, 1.1930e+01, ..., 2.1000e+01, 5.6400e+00,
    163. 2.3900e+01],
    164. [1.0959e-01, 0.0000e+00, 1.1930e+01, ..., 2.1000e+01, 6.4800e+00,
    165. 2.2000e+01],
    166. [4.7410e-02, 0.0000e+00, 1.1930e+01, ..., 2.1000e+01, 7.8800e+00,
    167. 1.1900e+01]], dtype=torch.float64)

  • 相关阅读:
    PyTorch技术和深度学习——四、神经网络训练与优化
    项目管理VS项目治理,初级项目经理的你肯定弄混过
    如何避免JavaScript中的内存泄漏?
    实时大数据流处理技术:Spark Streaming与Flink的深度对比
    grafana 配置自定义dashboard
    Ubuntu安装boost
    抽丝剥茧,Redis使用事件总线EventBus或AOP优化健康检测
    【ubuntu】开机后ROS程序自启动
    python中调试pdb库用法详解
    先后在影酷/传祺E9/昊铂GT量产交付,这家ADAS厂商何以领跑
  • 原文地址:https://blog.csdn.net/weixin_61838030/article/details/132941948