Python学习笔记

本文涵盖Python基本语法、字符串与列表操作、数学与数组处理、图像处理及PyCharm使用技巧,深入探讨常用方法如upper(), count(), index(), append(), reverse()及math.radians。并介绍随机数组生成、图像平移、cv2安装与使用,适合Python初学者和进阶者。

基本语法

字符串操作

upper() 方法

将某个字符串变为大写
place.upper()

count()方法

计算某个字符串、列表里某个特定字符、字符串或数字的数目
place.count('o')

ASCII编码值获取

字符串中的每个字符占据一个字节。如果由字符串创建8bit整数数组,则刚好得到其ASCII编码值。
e.g. s='abcd' np.fromstring(s,dtype=np.int8)

列表操作

index()方法

查找列表中某个元素的下标
num.index(20)

append方法

在列表后添加元素

reverse()方法

将列表顺序倒排

数学公式

角度转弧度: math.radians

数组操作

  • 数组可以使用reshape()方法,创建指定形状的新数组,而原数组的形状保持不变。e.g. d=a.reshape((2,2)) # same as a.reshape(2,2)
    此时d和a共享数据存储空间。其中一个变量的变化会引起另一个变量的变化!!
  • Logspace()与linspace()类似,但logspace()创建的是等比数列,同样可以通过参数endpoint指定是否包含终值。可以通过参数base指定底数,默认为10。e.g. np.logspace(0,2,5) 注意:这里起始值为 1 0 0 10^0 100,终值为 1 0 2 10^2 102
  • 可以先定义一个从下标计算数值的函数,然后用fromfunction()通过此函数创建数组。
  • 切片a[1:-1:2]表示从第二个元素到最后一个元素,每间隔一个元素取值。
    注意:由切片得到的新数组,与原始数据的一块内存共享存储空间。
  • 对于数组计算,np.sin比math.sin快10倍,这得益于np.sin在C语言级别的循环计算。但是由于要同时支持数组和单个值的计算,对单个数值的计算np.sin比math.sin慢很多,因为其内部实现比math.sin复杂很多。
  • 对于类似“x=ab+c”的复杂运算,实际上会产生一个中间变量用来表示ab,因此建议将表达式分解为下面两行语句,以减少一次内存分配:
x = a*b
x +=c
  • 对两个布尔数组使用and等布尔运算时,将跑出ValueError异常。因为布尔数组中有True也有False,所以numpy无法确定用户的运算目的。此时可以使用any()或all()方法。e.g. np.any(a==b) and np.any(a>b)

生成随机数组

random包中的方法生成的随机数都只能生成单个随机数。可以使用numpy.random中的随机数生成方法。

图像处理

图像平移

需要对图像平移来进行图像增强,增加训练样本。我使用的是cv2包中的warpAffine函数。使用方法如下。

def translate_image(img, x, y):
    move = np.float32([[1, 0, x], [0, 1, y]])
    return cv2.warpAffine(img, move, (img.shape[1], img.shape[0]))

其它

无法安装cv2

安装opencv,使用命令“pip install opencv-python”。使用时,使用“import cv2”。类似的还有scikit-learn等。

PyCharm小技巧:断点调试时在控制台中运行命令。

按快捷键“Shift+Alt+F9”进行调试。程序暂停后,打开Console面板,将“Show Python Prompt”图标点亮,就可运行啦。
演示:如何进行断电调试

“python不是内部或外部命令…”的解决方法

如果安装python后,如果在cmd里输入python命令时出现这个错误,一般是因为没有将python目录添加到环境变量中。添加到环境变量后就好了。同理,还有在cmd中输入pip …时报同样的错误,这是因为没有将python目录下的Scripts文件夹加入到环境变量中。

先看效果: https://renmaiwang.cn/s/jkhfz Hue系列产品将具备高度的个性化定制能力,并且借助内置红、蓝、绿三原色LED的灯泡,能够混合生成1600万种不同色彩的灯光。 整个操作流程完全由安装于iPhone上的应用程序进行管理。 这一创新举措为智能照明控制领域带来了新的启示,国内相关领域的从业者也积极投身于相关研究。 鉴于Hue产品采用WiFi无线连接方式,而国内WiFi网络尚未全面覆盖,本研究选择应用更为普及的蓝牙技术,通过手机蓝牙与单片机进行数据交互,进而产生可调节占空比的PWM信号,以此来控制LED驱动电路,实现LED的调光功能以及DIY调色方案。 本文重点阐述了一种基于手机蓝牙通信的LED灯设计方案,该方案受到飞利浦Hue智能灯泡的启发,但考虑到国内WiFi网络的覆盖限制,故而选用更为通用的蓝牙技术。 以下为相关技术细节的详尽介绍:1. **智能照明控制系统**:智能照明控制系统允许用户借助手机应用程序实现远程控制照明设备,提供个性化的调光及色彩调整功能。 飞利浦Hue作为行业领先者,通过红、蓝、绿三原色LED的混合,能够呈现1600万种颜色,实现了全面的定制化体验。 2. **蓝牙通信技术**:蓝牙技术是一种低成本、短距离的无线传输方案,工作于2.4GHz ISM频段,具备即插即用和强抗干扰能力。 蓝牙协议栈由硬件层和软件层构成,提供通用访问Profile、服务发现应用Profile以及串口Profiles等丰富功能,确保不同设备间的良好互操作性。 3. **脉冲宽度调制调光**:脉冲宽度调制(PWM)是一种高效能的调光方式,通过调节脉冲宽度来控制LED的亮度。 当PWM频率超过200Hz时,人眼无法察觉明显的闪烁现象。 占空比指的...
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值