python数组

Numpy 的学习笔记

两盒软妹~` 提交于 2019-11-29 12:30:31
Numpy 的学习笔记 几点约定 全文采用1 ~ 3个井号,对应全书的一级、二级和三级标题。 采用四个井号来记录正式的笔记内容 文章目录 Numpy 的学习笔记 Quickstart Tutorial 基础 ndarray的属性 创建array(数组)的方法 打印数组 print arrays array的算数运算 array的矩阵运算 Quickstart Tutorial 基础 Numpy的主要目的,是处理相同类型数据构成的【表元素】Table Elements Numpy 的维度,被称为【轴】axes # 以下数据有两个轴,第一个轴长度为2, 第二个轴长度为3 # 与线性代数中的约定是相同的,以下为一个2 x 3的矩阵 [ [ 1 . , 0 . , 0 . ] , [ 0 . , 1 . , 2 . ] ] ndarray的属性 这里讲述了ndarray的6个属性 ndim : 维度、shape : 形状、size : 大小 dtype : 元素类型、itemsize : 元素体积、data : 缓存空间 ndarray.ndim 轴(维度)的数量 ndarray.shape 数组的形状,每一个维度上的尺寸,构成一个tuple元组 ndarray.size 数组的总元素数,等于size各维度的乘积 ndarray.dtype 数组元素的数据类型

剑指offer 把数组排成最小的数

…衆ロ難τιáo~ 提交于 2019-11-29 12:01:13
题目描述 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。 解题思路:先将整数数组转化为一个字符串数组,然后按照两个字符串拼接出较小数字的规则重新定义排序规则,将排序后的字符串数组拼接即可。 Python代码如下: # -*- coding:utf-8 -*- import functools class Solution: def PrintMinNumber(self, numbers): # write code here if not numbers: return '' def com(x,y): if x+y < y+x: return -1 elif x+y > y+x: return 1 else: return 0 numbers = list(map(str,numbers)) numbers.sort(key=functools.cmp_to_key(com)) result = ''.join(numbers).lstrip('0') return result if result else '0' 来源: https://blog.csdn.net/qq_36309480/article/details/100665918

3 go中数组和切片之间的区别

三世轮回 提交于 2019-11-29 11:35:17
数组 数组的概念之前在c里面就有所以并不会很陌生,但是仍然有些区别。 数组是内置(build-in)类型,是一组同类型数据的集合,它是值类型,通过从0开始的下标索引访问元素值 。 在c++里面我们使用数组在传参的时候传递的都是指针,但是在go里面对数组进行赋值或者是穿参都是传值的行为。所以效率会有所降低。 数组的长度也是其类型的一部分,通过内置函数len(array)获取其长度。 定义的方法 var 变量名[len] type var a[5] int // 3个整数的数组 var a[5] string //3个字符串的数组 //不指定长度的定义方法 var a = [...]int{1,2,3} //数组的长度由元素的个数决定 //初始化方法 var a = [5] int{1,2,3,4,5} var a = [5] int{1,2,3} var a = [...]int{1,2,3,4} var a = [5]string{1:"go",3:"python"} ps : 数组的长度也是数组类型的一部分,所以[3]int 与 [4]int其实是不同的类型 默认情况下一个新的数组的元素初始值为元素类型的零值 指针数组 var num_ptrs [10] * int 函数传递参数 func name(a [] int ) { } func name(a [10] int) { }

力扣刷题(python)50天——第四十九天:反转字符串

风格不统一 提交于 2019-11-29 11:25:39
力扣刷题(python)50天——第四十九天:反转字符串 题目描述 编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。 不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。 你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。 示例 1: 输入:[“h”,“e”,“l”,“l”,“o”] 输出:[“o”,“l”,“l”,“e”,“h”] 示例 2: 输入:[“H”,“a”,“n”,“n”,“a”,“h”] 输出:[“h”,“a”,“n”,“n”,“a”,“H”] 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/reverse-string 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 方法 双指针,分别在数组左右两端,交换两者位置,后向内迭代。 解答 class Solution(object): def reverseString(self, s): """ :type s: List[str] :rtype: None Do not return anything, modify s in-place instead. """ l=len(s) left=0 right=l-1 while right

C++学习之路1----插入排序

筅森魡賤 提交于 2019-11-29 06:22:36
目前C++就是大学本科C语言课程+研一赶鸭子上架边查语法边写了一个project(只得了二十分(满分一百的样子))的水平。。。自学python到字典章节,但又不想丢下C语言,所以先在这里立一个小小的flag,希望以后每天都能来更点东西。。 今天刚开始看算法导论的书,所以先写一点关于排序的问题----插入排序(INSERTION SORT),输入为数组a[5,2,4,6,1,3],输出元素从小到大排列的a数组。 完整代码: #include<iostream> using namespace std; void print(int a[], int n) { for (int j = 0; j < n; j++) { cout << a[j] << " "; } cout << endl; } void insertSort(int a[], int n) { for (int i = 1; i < n; i++) { if (a[i] < a[i - 1]) { int j = i - 1; int X = a[i]; while (j >= 0 && X < a[j]) { //a[j + 1] = a[j]; swap(a[j + 1], a[j]); j--; } //a[j+1] = X; } } } int main() { int a[6] = { 5,2,4,6,1

Python数据分析:Numpy学习笔记

|▌冷眼眸甩不掉的悲伤 提交于 2019-11-29 04:49:33
Numpy学习笔记 ndarray多维数组 创建 import numpy as np np.array([1,2,3,4]) np.array([1,2,3,4,],[5,6,7,8]) np.zeros(8) np.zeros(3,4) np.ones(4) np.one_like([1,2,3,4]) np.empty((2,2,2)) np.arange(10) 数组创建函数 arange ones/ones_like zeros/zeros_like empty/empty_like eye/identity 属性 ndim: 轴的个数 shape: 数组的维度 size: 元素总个数 dtype: 数据类型 itemsize: 每个元素的字节大小 数据类型 float int complex bool string_ object 类型转换 attr1.astype(np.float64) # np.float64和'float64'都可以 attr1.astype('string_') attr1.astype('int32') 数组变换 reshage: 变换 flattern: 扁平 ravel: 散开 arr1 = np.arrary(9) arr.reshape((3,3)) arr.reshape((3, -1)) # -1根据数据数据本身/3决定 3种变换

numpy中:tile函数用法

北城以北 提交于 2019-11-29 00:42:46
tile函数位于python模块 numpy.lib.shape_base中,他的功能是重复某个数组。比如tile(A,n),功能是将数组A重复n次,构成一个新的数组,我们还是使用具体的例子来说明问题 ①先来引入numpy下的所有方法 from numpy import * ②我们创建一个Array,如图下图,使用tile来创建b,注意看b的数据结构 输出结果如下 ③假如我们输入一个元组(1,2),我们会得到一样的结果,与上面相同的b ④当然,我们想要a变为一个二维数组,就要换一种重复的方式了 输出结果如下 因此,若输入一个二元祖,第一个数表示复制的行数,第二个数表示对inx的重复的次数 来源: CSDN 作者: SYSU-Leo 链接: https://blog.csdn.net/sysleo/article/details/81134036

Python数据分析之pandas基本数据结构:Series、DataFrame

若如初见. 提交于 2019-11-29 00:33:33
1引言 本文总结Pandas中两种常用的数据类型: (1)Series是一种一维的带标签数组对象。 (2)DataFrame,二维,Series容器 2 Series数组 2.1 Series数组构成 Series数组对象由两部分构成: 值(value):一维数组的各元素值,是一个ndarray类型数据。 索引(index):与一维数组值一一对应的标签。利用索引,我们可非常方便得在Series数组中进行取值。 如下所示,我们通过字典创建了一个Series数组,输出结果的第一列就是索引,第二列就是数组的具体值。 >>> import pandas as pd >>> a =pd.Series([102, 212, 332, 434]) >>> a 0 102 1 212 2 332 3 434 dtype: int64 也可以在创建时手动指定索引: >>> a = pd.Series([102, 212, 332, 434], index=['第一列', '第二列', '第三列', '第四列']) >>> a 第一列 102 第二列 212 第三列 332 第四列 434 dtype: int64 利用索引,我们可以更加方便得在数组中进行取值: >>> a['第一列'] 102 >>> a[['第一列', '第二列']] 第一列 102 第二列 212 dtype: int64 当然

求众数(python实现)

风格不统一 提交于 2019-11-28 22:46:47
题目描述: 给定一个大小为 n 的数组,找到其中的众数。众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的,并且给定的数组总是存在众数。 示例 1: 输入: [3,2,3] 输出: 3 示例 2: 输入: [2,2,1,1,1,2,2] 输出: 2 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/majority-element 思路:遍历nums,再另设一个数组记录元素出现次数 代码: class Solution: def majorityElement(self, nums) -> int: lst=[] n=len(nums) count=[0]*n for i in nums: if i not in lst: lst.append(i) index=lst.index(i) count[index]+=1 if count[index]>n/2: return i else: index=lst.index(i) count[index]+=1 if count[index]>n/2: return i 来源: https://blog.csdn.net/weixin_44512019/article/details/100145748

Python的Numpy入门基础2

孤街浪徒 提交于 2019-11-28 20:16:18
NumPy作为Python的常用库,主要实现数组的计算和分析。 上回书说到:NumPy数组创建、索引、切片、转置的定义和注意事项; 顺其自然,就涉及到矩阵的运算: A. 数学函数 :针对数组和元素的通用函数,包含单个数组的一元函数:开方、指数、取整、判断NaN等;也包含多个数组的二元函数:加、减、相乘、整除、大小比较等;还有比较特殊的矩阵计算:点乘。 一元函数: np.sqrt( ) ## 开方 np.exp( ) ## 指数e^x np.abs( )、np.fabs( ) ## 取绝对值、快速绝对值(fast abs) np.rint( ) ## 四舍五入取整 np.ceil(arr)、np.floor(arr) ## 取 ≥ arr 得最小整数;取 ≤arr 得最大整数。 np.isnan( ) ## 返回不是数字(NaN)的 布尔型数组 decimal,integer = np.modf(arr) ## 将 arr 的小数部分、整数部分分开,分别赋值给新变量。 一元函数:针对矩阵的 行列 的数值计算; arr.mean(axis=1) ## 输出 每一 行 的均值 ; (可以增加 axis 参数,axis可以省略 ) arr.sum(0) ## 输出 每一 列 的和 arr.cumsum(0) ## 保持矩阵的相同维度, 在每一 列 的原始位置,输出中间步骤 的 累 加值