- 博客(75)
- 收藏
- 关注
原创 numpy——作业
导入数据鸢尾属植物数据集 .\iris.data ,在这个数据集中,包括了三类不同的鸢尾属植物:Iris Setosa,Iris Versicolour,Iris Virginica。每类收集了50个样本,因此这个数据集一共包含了150个样本。outfile=r"C:\Users\15755\Desktop\iris.data"iris_data = np.loadtxt(outfile, dtype=object, delimiter=',', skiprows=1)print(iris_da.
2020-12-01 22:32:13 302
原创 numpy——线性代数
矩阵在 Numpy 中,线性代数中的n维行向量是一维数组,n维列向量在 Numpy 中是一个shape为(n, 1)的二维数组。向量积numpy.dot(a, b[, out]) 计算两个矩阵的乘积x = np.array([[1, 2, 3], [3, 4, 5], [6, 7, 8]])print(x)y = np.array([[5, 4, 2], [1, 7, 9], [0, 4, 5]])print(y)z = np.dot(x, y)print(z)[[1 2 3] [
2020-11-29 18:59:32 383
原创 numpy——统计相关
计算最小值(amin)不带参数axis,结果为全数组最小值;带axis,结果为每一列或者每一行最小值x = np.array([[11, 12, 13, 14, 15],[16, 17, 18, 19, 20],[21, 22, 23, 24, 25],[26, 27, 28, 29, 30],[31, 32, 33, 34, 35]])y = np.amin(x)print(y) y = np.amin(x, axis=0)print(y) y = np.amin(x, axis=1
2020-11-27 21:34:32 284
原创 numpy——随机抽样
numpy.random.seed(seed=None)用于指定随机数生成时所用算法开始的整数值,如果使用相同的 seed() 值,则每次生成的随机数都相同,如果不设置这个值,则系统根据时间来自己选择这个值,此时每次生成的随机数因时间差异而不同。二项分布(binomial)野外正在进行9(n=9)口石油勘探井的发掘工作,每一口井能够开发出油的概率是0.1(p=0.1)。请问,最终所有的勘探井都勘探失败的概率?0.9^9=0.387420489np.random.seed(20201124)n
2020-11-25 21:31:15 417
原创 numpy——输入和输出
二进制npy格式save函数保存一个数组import numpy as npimport osos.chdir(r'C:\Users\15755\Desktop')outfile = r'.\test.npy'np.random.seed(20200619)x = np.random.uniform(0, 1, [3, 5])np.save(outfile, x)y = np.load(outfile)print(y)在桌面保存了一个npy的二进制文件,ndim、dtype、sh
2020-11-23 22:22:45 155
原创 pandas第八章——分类数据
一、category创建用Series或者内置的Categorical创建pd.Series(["a", "b", "c", "a"], dtype="category")cat = pd.Categorical(["a", "b", "c", "a"], categories=['a','b','c'])pd.Series(cat) 0 a1 b2 c3 adtype: categoryCategories (3, object): [a, b, c]
2020-11-10 17:23:04 177
原创 pandas第七章——文本数据
⼀、string类型的性质1.string与object的区别object会随缺失值的存在而改变返回类型。某些Series方法不在string上使用例如 Series.str.decode(),因为存储的是字串而不是字节。string类型在缺失值存储或运算时类型会广播为pd.NA,而不是浮点型np.nan。其余内容完全相同,但为了迎合pandas的发展模式,仍然用string操作字符串...
2020-11-02 21:10:48 882
原创 numpy——排序搜索计数及集合操作
排序numpy.sort(a[, axis=-1, kind=‘quicksort’, order=None])axis:排序沿数组的(轴)方向,0表示按行,1表示按列,None表示展开来排序,默认为-1,表示沿最后的轴排序。kind:排序的算法,提供了快排’quicksort’、混排’mergesort’、堆排’heapsort’, 默认为‘quicksort’。order:排序的字段名,可指定字段排序,默认为None。dt = np.dtype([('name', 'S10'), ('age'
2020-10-31 21:37:17 173
原创 numpy——数学函数及逻辑函数
数学函数算数运算按照广播规则对数组内每个元素都进行运算普通函数np.add(x, 1) #y = x + 1np.subtract(x, 1) #y = x - 1np.multiply(x, 1) #y = x * 1np.divide(x, 1) #y = x / 1np.floor_divide(x, 1) #y = x // 2np.power(x, 1) #y = x ** 2np.sqrt(x) #y等于x的算数平方根np.square(x) #y
2020-10-28 18:55:51 392
原创 numpy——数组的操作
更改形状1. numpy.ndarray.shape表示数组的维度,返回一个元组,这个元组的长度就是矩阵的秩。x = np.array([1, 2, 9, 4, 5, 6, 7, 8])print(x.shape)x.shape = [2, 2, 2]print(x)(8,)[[[1 2] [9 4]] [[5 6] [7 8]]]2.numpy.ndarray.flat将数组转换为一维的迭代器,可以用for访问数组每一个元素x = np.array([[11, 12,
2020-10-25 21:08:34 819
原创 pandas第六章——缺失数据
df = pd.read_csv('data/table_missing.csv')df.head() School Class ID Gender Address Height Weight Math Physics 0 S_1 C_1 NaN M street_1 173 NaN 34.0 A+ 1 S_1 C_1 NaN F street_2 192
2020-10-24 20:45:39 318
原创 numpy——索引与切片
整数索引一维数组x = np.array([1, 2, 3, 4, 5, 6, 7, 8])print(x[2]) 3二维数组x = np.array([[11, 12, 13, 14, 15],[16, 17, 18, 19, 20],[21, 22, 23, 24, 25],[26, 27, 28, 29, 30],[31, 32, 33, 34, 35]])print(x[2]) print(x[2][1]) print(x[2, 1]) [21 22 23 24 2
2020-10-23 21:27:45 264 1
原创 numpy——数据类型及数组创建
数据类型常量numpy.nan两个numpy.nan数值不同numpy.inf正无穷大numpy.pi圆周率numpy.e自然常数常见数据类型为了和python区分,numpy在这些名称末尾加了“_”创建数据类型numpy 的数值类型实际上是 dtype 对象的实例。class dtype(object): def __init__(self, obj, align=False, copy=False): pass每个内建类型都有一个唯一定义它的字符代码imp
2020-10-20 22:26:06 276 1
原创 pandas第五章——合并
一、append和assignappend方法主要用于添加行利用Series添加df_append = df.loc[:3,['Gender','Height']].copy() Gender Height0 M 1731 F 1922 M 1863 F 167s=pd.Series({'Gender':'F','Height':188},name='4')print(df_append.append(s)
2020-10-19 21:33:09 254 1
原创 pandas第四章——变形
⼀、透视表piovt(功能较少)展开df=pd.read_csv(r'data\table.csv')df.pivot(index='ID',columns='Gender',values='Height').head()Gender F MID1101 NaN 173.01102 192.0 NaN1103 NaN 186.01104 167.0 NaN1105 159.0 NaNpivot_tab
2020-10-12 20:56:42 214
原创 pandas第三章——分组
import numpy as npimport pandas as pddf = pd.read_csv(r'data/table.csv',index_col='ID')df.head() School Class Gender Address Height Weight Math PhysicsID1101 S_1 C_1 M street_1 173 63 34.0 A+1102 S_1 C_1
2020-10-04 21:00:51 248
原创 数值分析之python实现建立拉格朗日插值多项式
由于做作业懒得动手算,于是花了更多的时间编了个小程序。程序import numpy as npclass Lagrange(): def __init__(self,X,Y,n): self.X=[0]*n for i in range(n): X_copy=X.copy() del X_copy[i] upper=1 for x in range(n):
2020-09-28 21:55:12 1470
原创 pandas第二章——索引
一、单级索引数据df=pd.read_csv(r"C:\Users\15755\Desktop\大学\新建文件夹\joyful-pandas-master\data\table.csv",index_col='ID')特殊在Series中[]的浮点切片不是进行位置比较而是值比较。s_float = pd.Series([1,2,3,4],index=[1.,3.,5.,6.])s_float = pd.Series([1,2,3,4],index=[1.,3.,5.,6.])print(
2020-09-27 21:12:17 255
原创 pandas第一章——pandas基础
导入import pandas as pd文件读取与写入读取df = pd.read_csv()df_txt = pd.read_table()df_excel=pd.read_excel()写入df.to_csv()df.to_excel()基本数据结构SeriesSeries定义Series(data=None, index=None, dtype=None, name=None, copy=False, fastpath=False)示例,创建一个Series
2020-09-20 17:55:54 167
原创 单纯形算法及对偶的python实现
单纯形算法使用python编程语言通过矩阵运算编程来实现单纯形算法。1.建立模型后输入数据列出初始单纯形表将线性规划问题转化为标准型,求minz转化为求max-z以下图为例初始化import numpy as npclass Simplex(object): #构造函数(初始化函数) def __init__(self,z,B,bound): s...
2020-04-24 19:19:56 3857 2
原创 力扣之子集——78
问题解答回溯算法由幂集的定义,比如要写出[1,2,3]的幂集,先将1作为第一个元素搜索。2要,3要,就添加[1,2,3],回溯2要3不要就添加[1,2],回溯2不要3要,添加[1,3],依此思路完成回溯代码。核心思路:二元选择,选或是不选class Solution: def subsets(self, nums: List[int]) -> List[List[int...
2020-04-14 14:57:52 230
原创 力扣之只出现一次的数字——136
问题解答异或时间复杂度: O(N)class Solution: def singleNumber(self, nums: List[int]) -> int: res = 0 for i in nums: res = res ^ i return res调试结果:...
2020-04-08 16:03:10 126
原创 力扣之反转字符串——344
问题解答字符串基本知识时间复杂度: O(N)class Solution: def reverseString(self, s: List[str]) -> None: i=0 j=len(s)-1 while i<j: temp=s[i] s[i]=s[j] ...
2020-03-31 10:52:46 164
原创 力扣之通配符匹配——44
问题解答与力扣之正则表达式匹配——10类似。动态规划算法首先初始化状态方程然后分两种情况讨论来确定 dp[i][j]。1.p[j-1]=='*'dp[i][j]=dp[i-1][j] or dp[i][j-1]2.p[j-1] in ('?',s[i-1])dp[i][j]=dp[i-1][j-1]时间复杂度: O(TP)T 和 P 分别表示匹配串和模式串的长度cl...
2020-03-29 14:23:42 182
原创 力扣之加油站——134
问题解答贪心算法贪心算法的灵魂之处:不必受题目条件约束,寻找到局部最有利的方法。a=正汽油量b=负汽油量Q:为什么要分正负?A:为了确定出发点。a+b=剩余的汽油量,如果小于零就不能绕环路行驶一周,则返回出发时加油站的编号,否则返回 -1。时间复杂度: O(N)class Solution: def canCompleteCircuit(self, gas: Li...
2020-03-29 11:41:03 292
原创 力扣之跳跃游戏——55
问题解答贪心算法该问题的核心点:nums[j]>i-jj为0前的数,如果大于二者索引之差,说明能跳过;如果小于则不能跳过。主要可能的情况:【非零,0,非零,0,非零,0】中间的非零数可能无法跳过[9,4,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,9,4,1,0,0,0]时间复杂度: O(N)class Solution: def canJ...
2020-03-28 14:45:16 465
原创 力扣之分发饼干——455
问题解答贪心算法遍历每个饼干,在每次分饼干时,直到饼干能满足最小胃口的孩子,才再换一个胃口更大的小孩。时间复杂度: O()class Solution: def findContentChildren(self, g: List[int], s: List[int]) -> int: g.sort() s.sort() ...
2020-03-27 13:36:50 163
原创 力扣之设计循环双端队列——641
问题解答数据结构队列知识public class MyCircularDeque { private int[] elements; private int size; /** Initialize your data structure here. Set the size of the deque to be k. */ public MyCircu...
2020-03-26 12:38:55 147
原创 力扣之滑动窗口最大值——239
问题解答1.暴力算法(切片)调用max函数返回每次滑动窗口中的最大值。时间复杂度: O(N^2)class Solution(object): def maxSlidingWindow(self, nums, k): res=[] for i in range(0,len(nums)-k+1): #左闭右开 res.ap...
2020-03-26 12:03:03 312
原创 力扣之判断子序列——392
问题解答切片遍历s中的字符,如果在t中,就删去其在t中第一次出现的位置及之前的字符;如果不在就返回False。如果遍历完成表示s是t的子序列。时间复杂度:O(n)class Solution: def isSubsequence(self, s: str, t: str) -> bool: for i in s: if i in t...
2020-03-26 09:10:34 155
原创 力扣之恢复二叉搜索树——99
问题解答迭代中序遍历算法由题知两个节点被错误的交换了,可借助力扣第94题中序遍历的迭代算法遍历。如果当前节点root的值小于前置节点p的值,当前节点是错误节点之一,确定了两个错误节点后就可退出循环并交换其值,问题就得到了解决。时间复杂度: O(n)class Solution: def recoverTree(self, root: TreeNode): st...
2020-03-24 13:45:24 196
原创 力扣之整数反转——7
问题解答1.无脑菜鸡暴力算法将x转化为string然后reverse然后再转化为int,注意32位整数的约束条件。class Solution: def reverse(self, x: int): if x<-2147483648 or x>2147483647: return 0 else: ...
2020-03-24 11:33:25 145
原创 力扣之不同的二叉搜索树 II——95
问题解答二叉搜索树二叉查找树(Binary Search Tree),(又:二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树。递归算法确定树根 i 所有可能的左子树、右子树的列表。对左右列表循环,完成...
2020-03-23 17:01:59 101
原创 力扣之二叉树的中序遍历——94
问题解答1.递归算法class Solution(object): def inorderTraversal(self, root): res = [] def dfs(root): #root为空就退出函数 if not root: return 0 #左——添加——右 dfs(root.left) res.append(root.v...
2020-03-22 21:51:26 174
原创 力扣之逆波兰表达式——150
问题解答栈如果是数字,则压入栈;如果是符号,则计算。时间复杂度:O(N)class Solution: def evalRPN(self, tokens: List[str]) -> int: opreate = ["+","-","*","/"] resList = [] if len(tokens) == 0: ...
2020-03-22 20:09:03 149
原创 力扣之最小栈——155
问题解答辅助栈min_stack作为储存最小元素的辅助栈使getMin()函数时间复杂度达到O(1)class MinStack: def __init__(self): self.stack = [] self.min_stack = [] def push(self, x: int) -> None: self.s...
2020-03-22 15:34:57 166
原创 力扣之二叉树的最大深度——104
问题解答1.迭代算法使用队列从第一层开始单层弹出,弹出的次数即为二叉树的最大深度。时间复杂度:O(n)# Definition for a binary tree node.# class TreeNode:# def __init__(self, x):# self.val = x# self.left = None# ...
2020-03-21 20:03:17 98
原创 力扣之对称二叉树——101
问题解答递归算法判断两个指针当前节点值是否相等,判断 一个树的左(右)子树与另一个树的右(左)子树是否对称。时间复杂度:O(n)class Solution(object): def isSymmetric(self, root): if not root: return True def d(left,right): ...
2020-03-20 20:24:12 158
原创 力扣之相同的树——100
问题解答1.递归算法先判断 p 和 q 是否为空,然后判断它们的值是否相等。若判断通过,则子结点做相同操作。时间复杂度 : O(N)# Definition for a binary tree node.# class TreeNode:# def __init__(self, x):# self.val = x# self.left =...
2020-03-19 18:59:33 155
原创 力扣之正则表达式匹配——10
问题解答1.递归算法先考虑*。*只会出现在第二个字符之后,且有两种可能。匹配零个前面的那一个元素返回第一个字符是否匹配和后面字符是否全部符合的bool值匹配一个或多个前面的那一个元素忽略s'的第一个元素,判断s'的每一个字符除第一个元素和p'是否匹配或者判断忽略p'匹配的一部分后二者是否匹配时间复杂度: O(2^n)class Solution: def isMat...
2020-03-18 23:27:46 267
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人