【scratch】class_4_数据结构_数组和列表

本文介绍了Scratch中的基本数据结构——数组和列表,详细讲解了数组的长度、类型和索引三个要素,以及列表的动态特性和常用操作,包括创建、删除、插入和遍历等,帮助初学者理解编程中最基础的数据组织方式。

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

数据结构 Data Structure

概念:数据结构是计算机存储、组织数据的方式

就好像现实生活中存储物品的箱子或者柜子。各种各样的数据结构,用以方便实现各种数据的存取。下面先来学习两个最基本的数据结构,数组和列表

数组 Array

概念:将相同类型的多个数据,按无顺序的形式组织在一起形成的集合。

就好像有多个格子的柜子,可以用来存放物品,数组就是用来存放数据的“柜子”;
数组基本概念

要素:数组有三个要素——长度、类型、索引

  1. 一个数组的长度在创建时就确定了,而且是不可以变化的。就好像我们拜托木匠给我们做一个柜子,这个柜子里有几个格子在做的时候就已经确定了,是不可以变化的。
  2. 和现实中的柜子不同的是,现实中的柜子可以装任何东西——只要能装的进去。但是数组能存放的数据类型一开始也是确定的,不能改变。就好像我们做一个柜子,只能装鞋子,或者只能装裤子。一个数组被创建时,必须声明它要存储的数据类型,要么只能装数字,要么只能装字符,等等。
  3. 索引就是柜子里边格子的编号,它代表了数据的位置。通过给格子编号,可以很方便的知道哪个格子里装的是什么东西,也能很方便的把编号对应的数据取出来,就好像超市的储物柜,或者澡堂放衣服的柜子。
``` import os import pandas as pd import numpy as np # 设置主文件夹路径 main_folder = 'C:/Users\Lenovo\Desktop\crcw不同端12k在0负载下\风扇端' # 创建空列表,用于存储数据标签 data_list = [] label_list = [] def processTarget(): # 遍历主文件夹中的每个子文件夹,并处理每个.csv文件 for folder_name in sorted(os.listdir(main_folder)): folder_path = os.path.join(main_folder, folder_name) if os.path.isdir(folder_path): csv_files = [f for f in os.listdir(folder_path) if f.endswith('.csv')] print(f"Processing folder: {folder_name}, found {len(csv_files)} CSV files.") # 打印 CSV 文件数量 # 遍历该类别文件夹中的.csv文件 for filename in sorted(csv_files): file_path = os.path.join(folder_path, filename) # 读取.csv文件 csv_data = pd.read_csv(file_path, header=None) # 检查数据形状,确保至少有4列 if csv_data.shape[1] >= 4: # 确保至少有4列 csv_data = csv_data.iloc[:, [0, 1, 2]].values # 只保留前3列,忽略第4列(RPM) else: print(f"Skipping file {filename}, unexpected shape: {csv_data.shape}") continue # 跳过不符合要求的文件 # 将当前文件的数据添加到 data_list 中 data_list.append(csv_data) # 添加为二维数组 # 添加相应的标签 if '内圈故障' in folder_name: class_label = 0 # 0: 内圈故障 elif '球故障' in folder_name: class_label = 1 # 1: 球故障 else: continue # 如果文件夹名称不符合预期,跳过 label_list.append(class_label) # 直接添加标签 # 确保 data_list label_list 不为空 if data_list and label_list: # 将数据转换为三维 NumPy 数组 data = np.array(data_list) # shape: (文件数量, 1000, 3) label = np.array(label_list) # shape: (文件数量,) return data, label else: raise ValueError("没有有效的数据可供处理。") # 调用 processTarget 函数 try: data0, label0 = processTarget() print(data0.shape) # 输出数据形状 print(label0.shape) # 输出标签形状 except ValueError as e: print(e)```File "C:/Users/Lenovo/AppData/Roaming/JetBrains/PyCharmCE2020.2/scratches/scratch_21.py", line 23 self.trans_matrix_ = np.dot(inv_K, Pt.reshape(nt, 1)) ^ SyntaxError: invalid syntax
最新发布
03-31
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值