首页 文章 精选 留言 我的

精选列表

搜索[基础搭建],共10000篇文章
优秀的个人博客,低调大师

Python零基础学习笔记(十)—— 运算符和表达式

知识点: 运算符和表达式 运算符:表示运算的符号 表达式:由变量、常量和运算符组成的式子 算术运算符和算数运算表达式 算术运算符 + - * / % ** // 加 减 乘 除 取模 求幂 取整 算是运算表达式 1 + 1 2*3 a/3 功能:进行相关符号的数学运算,不会改变变量的值 值:相关数据的运算结果 赋值运算符和赋值运算表达式 赋值运算符 = 赋值运算表达式 格式: 变量 = 表达式 功能:计算了等号右侧‘表达式’的值,并赋值给等号左侧的变量 值:赋值结束后变量的值 复合运算符 += a+=b -> a=a+b -= a-=b -> a=a-b *= a*=b -> a=a*b /= a/=b -> a=a/b %= a%=b -> a=a%b **= a**=b -> a=a**b //= a//=b -> a=a//b 练习代码: #算数运算符计算 num1 = 7 num2 = 3 print(num1 + num2) print(num1 - num2) print(num1 * num2) print(num1 / num2) print(num1 % num2) print(num1 ** num2) print(num1 // num2) print("--------") num3 = 2 num4 = num3 +1 print(num4)运算结果: 10 4 21 2.3333333333333335 1 343 2 -------- 3

优秀的个人博客,低调大师

2、python机器学习基础教程——K近邻算法鸢尾花分类

一、第一个K近邻算法应用:鸢尾花分类 import numpy as np from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split from sklearn.neighbors import KNeighborsClassifier # 加载数据 iris_dataset = load_iris() # 实例化模型 knn = KNeighborsClassifier(n_neighbors=1) # 切分训练和测试数据集 X_train,X_test,y_train,y_test = train_test_split(iris_dataset["data"], iris_dataset["target"],random_state=0) #训练 knn.fit(X_train, y_train) # 评估模型 print("Test set score:{:.2f}".format(knn.score(X_test,y_test))) # 预测 X_new = np.array([[5,2.9,1,0.2]]) prediction = knn.predict(X_new) print("Predicted target name:{}".format(iris_dataset["target_names"][prediction])) 以上代码段包含了应用scikit-learn中人和机器学习算法的核心代码。 fit、predict和score方法是scikit-learn监督学习模型中最常用的接口。

优秀的个人博客,低调大师

[雪峰磁针石博客]python计算机视觉深度学习2图像基础

构建自己的图像分类器之前需要了解图像是什么。 像素:图像的元素 像素是图像的基本元素。每个图像都由一组像素组成。没有比像素更细的粒度。 通常像素是光的“颜色”或“强度”。 下图的分辨率为1,000×750,这意味着它是1,000像素宽750像素高。我们可以将图像概念化为(多维)矩阵。图片中总共有1,000×750 = 750,000像素。 大多数像素以两种方式表示:1.灰度/单通道2.颜色 在灰度图像中,每个像素是0到255之间的标量值,其中零对应为“黑色”,255为“白色”。 彩色像素通常在RGB颜色空间中表示(其他颜色空间通常要转成RGB)。 黑色:(0, 0, 0)红色:(255, 0, 0) RGB色彩空间的主要缺点包括:•不使用“颜色选择器”工具时表示颜色不直观•它不像人类看待颜色的方式。 图像坐标系统 OpenCV和scikit-image用多维NumPy数组表示RGB。 import cv2 image = cv2.imread("example.png") print(image.shape) cv2.imshow("Image", image) cv2.waitKey(0) 执行结果: $ python load_display.py (248, 300, 3) 像素访问 (b, g, r) = image[20, 100] # accesses pixel at x=100, y=20 (b, g, r) = image[75, 25] # accesses pixel at x=25, y=75 (b, g, r) = image[90, 85] # accesses pixel at x=85, y=90 OpenCV的存储顺序:Blue, Green, Red 技术支持qq群144081101 591302926 567351477 钉钉免费群:21745728 缩放 多数神经网络和卷积神经网络应用于图像任务分类要求固定大小的输入,意味着你通过的所有图像的尺寸必须相同。输入的宽度和高度图像尺寸的常见选择卷积神经网络包括32×32,64×64,224×224,227×227,256×256和299×299。

优秀的个人博客,低调大师

Java基础知识的全面巩固_note1(附各种demo code)

拜读《核心技术卷》,笔记之。 提纲 1.编译运行第一个程序2.使用floorMod求模3.关于Math4.1数据类型 4.2 变量注意事项5.数值类型之间的转换(主要注意精度损失):6.位运算7.字符串8.StringBuilder9.读取输入(控制平台)10.格式化输出11.文件输入与输出12.块作用域的注意事项13.一个while语句的Demo14.switch语句的case标签注意:15.大数值:BigInteger、BigDecimal 1.编译运行第一个程序 结构目录: 使用cmd编译: D:\>cd OK/corejava D:\OK\corejava>cd v1ch02/Welcome D:\OK\corejava\v1ch02\Welcome>javac Welcome.java D:\OK\corejava\v1ch02\Welcome>java Welcome Welcome to Core Java! ===================== D:\OK\corejava\v1ch02\Welcome> Welcome.java文件内容: /** * This program displays a greeting for the reader. * @version 1.30 2014-02-27 * @author Cay Horstmann */ public class Welcome { public static void main(String[] args) { String greeting = "Welcome to Core Java!"; System.out.println(greeting); for (int i = 0; i < greeting.length(); i++) System.out.print("="); System.out.println(); } } 上面的cmd中,javac程序是一个Java编译器,它将文件Welcome.java编译成Welcome.class.java程序启动Java虚拟机。虚拟机执行编译器放在class文件中的字节码。 2.使用floorMod求模 语法: floorMod(position + adjustment, modulus); package Test; import java.lang.Math; public class Havaatry { public static void main(String[] args) { // TODO 自动生成的方法存根 int hehe = Math.floorMod(2+15,12); System.out.println(hehe); } } 3.关于Math 三角函数 Math.sin Math.cos Math.tan Math.atan Math.atan2 对数 Math.exp Math.log Math.log10 两个常量 Math.PI Math.E 通过Javadoc进行具体查看: java的Math.pow: double y = Math.pow(x, a); //将y的值设置为x的a次幂。 4.1数据类型 长整型值后缀一个L或者l(如400000000000L)。 十六进制前缀0x或0X。 八进制前缀0,例如010对应八进制的8.显然八进制表示法容易混淆,建议最好不使用八进制常数。 Java 7 开始,可以用0b或0B写二进制数,如0B1001就是9.另外,同样是从Java 7 开始,还可以为数字字面量加下划线。如用1_000_000(或0b1111_0100_0010_0100_0000)表示一百万。这些下划线只为易读,Java编译器会去除这些下划线。 绝大部分应用程序都采用double类型,float类型的精度很难满足需求。float类型需要后缀F或f,否则默认浮点数值为double。 Double.POSITIVE_INFINITY、Double.NEGATIVE_INFINITY、Double.NaN三个常量分别表示正无穷大、负无穷大、NaN(不是一个数字,计算0/0或者负数的平方根结果为NaN)。 boolean类型只有false和true两个值,用来判定逻辑条件。整型值和布尔值之间不能进行相互转换。在C++中,数值甚至指针可以代替boolean值,值0相当于布尔值false,非0值相当于布尔值true,在Java中不可以! final表示的变量只能被赋值一次,一旦被赋值就不能再更改。 4.2 变量注意事项 声明/定义 const和final 5.数值类型之间的转换(主要注意精度损失): 上图有6个实心箭头,表示无信息丢失的转换,有3个虚箭头,表示可能有精度损失的转换。比如下面的123 456 789是一个大整数,位数超过了float类型所能表达的位数,在转换的时候,将会得到同样大小的结果(注意底层是用二进制存储数据的),但却失去了一定的精度。 强制类型转换:会丢失精度 double x = 9.997; int nx = (int) x; 舍入运算: double x = 9.997; int nx = (int) Math.round(x); 6.位运算 &(“and”) | (“or”) ^(“xor”) ~(“not”) 这些运算符按位模式处理。例如,如果n是一个整数变量,而且用二进制表示的n从右边数第4位为1,则 int fourthBItFromRight = (n & 0b1000) / 0b1000; 会返回1(结果递等为0b1000 / 0b1000),否则返回0(递等为 0b 0000 / 0b1000)。 7.字符串 (参考) 没有内置的字符串类型,标准库中提供了一个预定义类,String,例如: String greeting = "Hello"; 每个用双引号括起来的字符串都是 String 类的一个实例 <1>子串(substring方法) String greeting = "Hello"; String s = greeting.substring(0,3); //Hel,不包含3,从0开始计数 <2>拼接(+) System.out.println("The answer is"+answer); 使用定界分隔符(join): String all = String.join("/","S","M","L","XL"); //"S/M/L/XL" <3>不可变字符串(例:将Hello改为Help!) String greeting = "Hello"; greeting = greeting.substring(0,3)+"p!"; 将来自文件或键盘的单个字符或短的字符串汇集成字符串 <4>检测字符串是否相等:(equals 方法) s.equals(t) //比较字符串s和t,返回true或false 检测字符串是否相等,不区分大小写(equalsIgnoreCase 方法) "Hello".equals("hello") //返回false "Hello".equalsIgnoreCase("hello") //返回true 双等号(==)只能确定两个字符串是否放置在线程池中的同一个位置上 <5>空串与null串 检测空串(""): if (str.length() == 0) 或 if (str.equals("")) null表示目前没有任何对象与该变量关联。检测方法: if (str == null) 检测一个字符串既不是null,也不为空: if (str != null && str.length() != 0) 先检测str不为null,如果在一个null值上调用方法,会出现错误 String类关键方法: 8.StringBuilder 使用: 1.构建一个空的字符串构建器 : StringBuilder builder = new StringBuilder(); 2.加入字符或字符串 builder.append(ch) ; //appends a single character builder.append(str) ; // appends a string 3.在需要构建字符串时就凋用 toString 方法,得到String对象: String completedString = builder.toString(); StringBuilder类关键方法: 9.读取输入 Demo 代码中的方法均以Enter作为结束: import java.util.*; /** * This program demonstrates console input. * @version 1.10 2004-02-10 * @author Cay Horstmann */ public class InputTest { public static void main(String[] args) { Scanner in = new Scanner(System.in); // get first input System.out.print("What is your name? "); String name = in.nextLine();//读取一行,可以读入空格 // get second input System.out.print("How old are you? "); int age = in.nextInt();//读取一个整数 // display output on console System.out.println("Hello, " + name + ". Next year, you'll be " + (age + 1)); //读取一个单词 String s = in.next(); //读取一个浮点数 double d = in.nextDouble(); System.out.println("s = " + s + ". d = " + d); } } 要想读取一个整数,就调用nextInt()方法 如:int age = in.nextInt(); next()输入不能隔着空格,不然会报错: Scanner关键API: 10.格式化输出 package Test; import java.lang.Math; public class Havaatry { public static void main(String[] args) { // TODO 自动生成的方法存根 System.out.printf("%f \n",10000.0/3.0); System.out.printf("%.2f \n",10000.0/3.0); System.out.printf("%,.2f \n",10000.0/3.0); System.out.printf("%+.2f \n",10000.0/3.0); System.out.printf("% .2f \n",10000.0/3.0); System.out.printf("%(.2f \n",-10000.0/3.0); System.out.printf("%#f \n",3333.); } } Date类和相关的格式化选项;格式包括两个字母,以t开始,以表3-7中的任意字母结束: Demo: System.out.printf("%1$s %2$tB %2$te, %2$tY \n", "Due date:", new Date()); System.out.printf("%s %tB %<te, %<tY", "Due date:", new Date()); 格式说明语法图: 11.文件输入与输出 要想对文件进行读取,就需要一个用File对象构造一个Scanner对象,如下所示: Scanner in = new Scanner(Paths.get("myfile.txt"),"UTF-8"); !!!!!!!在这之后,就可以利用前面介绍的任何一个Scanner方法对文件进行读取 !!!!!!!"UTF-8"乃字符编码,如果省略了这个参数,则会使用运行这个Java程序的机器的“默认编码”。这不是一个好主意, 如果在不同的机器上运行这个程序,可能会有不同的表现。 注意: 要想写入文件就需要构建一个PrintWriter对象,在构造器中,只需要提供文件名: PrintWriter out = new PrintWriter("myfile.txt","UTF-8"); 如果文件不存在,创建该文件。可以像输出到System.out一样使用print、println以及printf命令。 本节相关API 12.块作用域的注意事项 13.一个while语句的Demo: 首先计算退休账户中的余额,然后再询问是否打算退休,只要用户回答“N”,循环就重复执行。这是一个需要至少执行一次循环的很好示例,因为用户必须先看到余额才能知道是否满足退休所用。 import java.util.*; /** * This program demonstrates a <code>do/while</code> loop. * @version 1.20 2004-02-10 * @author Cay Horstmann */ public class Retirement2 { public static void main(String[] args) { Scanner in = new Scanner(System.in); System.out.print("How much money will you contribute every year? "); double payment = in.nextDouble(); System.out.print("Interest rate in %: "); double interestRate = in.nextDouble(); double balance = 0; int year = 0; String input; // update account balance while user isn't ready to retire do { // add this year's payment and interest balance += payment; double interest = balance * interestRate / 100; balance += interest; year++; // print current balance System.out.printf("After year %d, your balance is %,.2f%n", year, balance); // ask if ready to retire and get input System.out.print("Ready to retire? (Y/N) "); input = in.next(); } while (input.equals("N")); } } 执行结果: How much money will you contribute every year? 30 Interest rate in %: 0.3 After year 1, your balance is 30.09 Ready to retire? (Y/N) N After year 2, your balance is 60.27 Ready to retire? (Y/N) N After year 3, your balance is 90.54 Ready to retire? (Y/N) N After year 4, your balance is 120.90 Ready to retire? (Y/N) N After year 5, your balance is 151.36 Ready to retire? (Y/N) N After year 6, your balance is 181.90 Ready to retire? (Y/N) N After year 7, your balance is 212.54 Ready to retire? (Y/N) N After year 8, your balance is 243.26 Ready to retire? (Y/N) Y 14.switch语句的case标签注意: 15.大数值:BigInteger、BigDecimal 如果基本的整数和浮点数精度不能够满足需求,那么可以使用java.math包中的两个很有用的类:BigInteger和BigDecimal。这两个类可以处理包含任意长度数字序列的数值。BigInteger类实现了任意精度的整数运算,BigDecimal实现了任意精度的浮点数运算。 使用静态的valueOf方法可以将普通的数值转换为大数值: BigInteger a = BigInteger.valueOf(100); 遗憾的是,不能使用人们熟悉的算术运算符(如:+和 * )处理大数值。而需要使用大数值类中的add和multiply方法。 BigInteger c = a.add(b); / / c = a + b BigInteger d = c.multiply(b.add(BigInteger.valueOf(2))); / / d = c * ( b + 2 ) 下面上一个例子,先用普通数据类型写一个(排列组合的)组合算法,其中变量k为欲取数,n为总数: import java.util.*; /** * This program demonstrates a <code>for</code> loop. * @version 1.20 2004-02-10 * @author Cay Horstmann */ public class LotteryOdds { public static void main(String[] args) { Scanner in = new Scanner(System.in); System.out.print("How many numbers do you need to draw? "); int k = in.nextInt(); System.out.print("What is the highest number you can draw? "); int n = in.nextInt(); /* * compute binomial coefficient n*(n-1)*(n-2)*...*(n-k+1)/(1*2*3*...*k) */ int lotteryOdds = 1; for (int i = 1; i <= k; i++) lotteryOdds = lotteryOdds * (n - i + 1) / i; System.out.println("Your odds are 1 in " + lotteryOdds + ". Good luck!"); } } 测试——组合10中取2,结果为45: 下面用大数值进行计算: import java.math.*; import java.util.*; /** * This program uses big numbers to compute the odds of winning the grand prize in a lottery. * @version 1.20 2004-02-10 * @author Cay Horstmann */ public class BigIntegerTest { public static void main(String[] args) { Scanner in = new Scanner(System.in); System.out.print("How many numbers do you need to draw? "); int k = in.nextInt(); System.out.print("What is the highest number you can draw? "); int n = in.nextInt(); /* * compute binomial coefficient n*(n-1)*(n-2)*...*(n-k+1)/(1*2*3*...*k) */ BigInteger lotteryOdds = BigInteger.valueOf(1); for (int i = 1; i <= k; i++) lotteryOdds = lotteryOdds.multiply(BigInteger.valueOf(n - i + 1)).divide( BigInteger.valueOf(i)); System.out.println("Your odds are 1 in " + lotteryOdds + ". Good luck!"); } } 比较: lotteryOdds = lotteryOdds * (n - i + 1) / i; 跟 lotteryOdds = lotteryOdds.multiply(BigInteger.valueOf(n - i + 1)).divide(BigInteger.valueOf(i)); 关键API:

优秀的个人博客,低调大师

手把手 | 从基础到实现:集成学习综合教程(附Python代码)

介绍 当你想购买一辆新车时,你会走到第一家汽车商店就根据经销商的建议购买一辆车吗?这是不太可能的。 你可能会浏览一些人们发布评论并比较不同车型的门户网站,检查其功能和价格。你也可能会问你的朋友和同事们的意见。总之,你不会直接得出结论,还会参考其他人的意见做出决定。 机器学习中的集成模型也是类似的思路。它们结合了多个模型的决策来提高整体性能。这可以通过各种方式实现,本文将会带你一起探索。 本文的目的是介绍集成学习的概念并理解使用这种技术的算法。为了巩固你对这个多元化主题的理解,我们将用真实问题的动手案例,配合Python来解释其中的高级算法。 注意:本文假定你对机器学习算法有基本的了解。我建议阅读这篇文章以熟悉这些概念。 文章链接:https://www.analyticsvidhya.com/blog/2017/09/common-machi

优秀的个人博客,低调大师

学习Java基础知识,打通面试关~十二接口与抽象类

在我们Java开发的过程中,接口使我们经常使用到。但是我们也会用到抽象类。那么我们在开发的时,具体应该怎么选择呢?这两者有什么区别?我们今天就来学习下。 抽象类 抽象类顾名思义就是不能实例化的类,我们在创建的时候会使用abstract 来创建。在抽象类中含有无具体实现的方法,所以我们在使用的时候不能使用该类来创建对象。 抽象类在表面上普通的类没有区别,可以有多个抽象方法,当然也可以没有抽象方法。 抽象类的实现主要是为了提供代码复用的目的。 抽象类前面的修饰除了abstract ,还有有public,protected,缺省情况下是public。不能是private.不然子类不能继承父类。 我们子类在继承抽象类时,子类必须实现父类的抽象方法,否则 ,子类也必须定义为抽象类。 public abstract class Abstorct { //方法声明为抽象的。 public abstract void add(); } public class AbstorctImpl extends Abstorct { @Override public void add() { } } 接口 编程中,接口我们经常使用,利用它达到API定义与实现分离的目的。 在Java中,是没有多继承这一实现的,但是我们可以使用接口来达到这个目的。方便我们去实现我们想要的目的。 接口中的变量总是被隐式指定为public static final 变量。 并且方法也是被隐式的定义为public abstract。接口中的方法必须都是抽象方法。 在java8以后,接口中也有了默认的实现方法。 //java集合中一个默认实现的方法。 public interface Collection<E> extends Iterable<E> { default boolean removeIf(Predicate<? super E> filter) { Objects.requireNonNull(filter); boolean removed = false; final Iterator<E> each = iterator(); while (each.hasNext()) { if (filter.test(each.next())) { each.remove(); removed = true; } } return removed; } } 两者不同点 两者一个是类一个是接口,从子类来实现或者继承时,实现就不同,继承类java中只能单继承。 抽象类是事务的抽象,比如我们对于一个动物的描述,人和猴都有相似的东西,可以抽象出来共同的特征。 抽象类 是一个 has-a的关系。接口是is-a的关系。比如猴是否能跳,能跳跃,那么就能实现该接口,不能实现则不能实现。 接口中不能含有静态代码块和静态方法,但是抽象类是可以存在静态代码块和静态方法的。 接口中的成员变量默认是public static final 类型的。抽象函数中的成员可以是各个类型的。 我们在程序中如果对接口进行增加方法,那么子类实现也得增加其实现方法 不可取,但是java8以后增加了默认方法的实现。而抽象类中添加了非抽象方法,子类只会享受其能力的扩展,不用担心编译出现问题。 简单了解下抽象方法和接口,让我们在编程的时候更加享受其特性带来的方便。在选择上可以有更多的选择。 原文发布时间为:2018-07-01本文作者:mengrui本文来自云栖社区合作伙伴“LuckQI”,了解相关信息可以关注“LuckQI”。

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册