python数组

python 快速排序算法

旧城冷巷雨未停 提交于 2020-02-04 11:32:34
def quicksort(nums): if len(nums) <= 1: return nums # 左子数组 less = [] # 右子数组 greater = [] # 基准数 base = nums.pop() print('sssssssss') print(base) # 对原数组进行划分 for x in nums: if x < base: less.append(x) else: greater.append(x) # 递归调用 return quicksort(less) + [base] + quicksort(greater) def main(): nums = [6,1,2,7,9,3,4,5,10,8] print(quicksort(nums)) main() 输出: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 来源: https://www.cnblogs.com/pp8080/p/12258534.html

img.item()函数说明

我只是一个虾纸丫 提交于 2020-02-04 10:27:07
import cv2 import numpy as np # 读取一幅图像 img = cv2.imread('D:/picture/amazing/6.png') # 获取像素值 print(img.item(10,10,2)) # 修改像素值 img.itemset((10,10,2), 100) print(img.item(10,10,2)) helpItem = help(img.item) print(helpItem) 以下翻译自帮助文档 numpy.ndarray实例的item(…)方法 a.item(* args) 将数组的元素复制到标准Python标量并返回。 参量 ---------- \ * args:参数(变量号和类型) *无:在这种情况下,该方法仅适用于具有一个元素( a.size == 1 )的数组,该元素被复制到标准Python标量对象中并返回。 * int_type:此参数被解释为数组的平面索引,指定要复制并返回的元素。 * int_types元组:功能与单个int_type参数相同,不同之处在于该参数被解释为数组的nd-index。 返回值 ------- z:标准Python标量对象数组中指定元素的副本,作为合适的Python标量 注意 ----- 当a的数据类型为longdouble或clongdouble时,item(

numpy

浪尽此生 提交于 2020-02-02 21:43:49
ndarray自带属性 import numpy as np a = np . array ( [ [ 0 , 1 , 2 , 3 , 4 ] , [ 9 , 8 , 7 , 6 , 5 ] ] ) a . ndim a . shape a . size a . dtype a . itemsize ndarray创建方法 #ndarray数组的创建方法 #1.从python中的列表元组创建 x = np . array ( [ 0 , 1 , 2 , 3 ] ) print ( x ) x = np . array ( ( 4 , 5 , 6 , 7 ) ) print ( x ) x = np . array ( [ [ 1 , 2 ] , [ 3 , 4 ] , ( 5 , 6 ) ] ) print ( x ) #2.使用numpy中的函数创建数组 #(1) y = np . arange ( 6 ) print ( y ) y = np . ones ( ( 2 , 2 ) , dtype = np . int32 ) print ( y ) y = np . eye ( 5 ) print ( y ) #(2) #np.ones_like(a) #np.zeros_like(a) #np.full_like(a,val) #(3) a = np . linspace (

Numpy学习笔记(二)

ぃ、小莉子 提交于 2020-02-02 02:20:45
NumPy库的心脏–ndarray 整个 NumPy库的基础是 ndarray( N-dimensional array,N维数组)对象。 它是一种由同质元素组成的多维数组,元素数量是事先指定好的。 同质指的是几乎所有元素的类型和大小都相同。 事实上,数据类型由另外一个叫作 dtype( data-type,数据类型)的 NumPy对象来指定; 每个 ndarray只有一种 dtype类型。 数组的维数和元素数量由数组的型( shape)来确定, 数组的型由N个正整数组成的元组来指定,元组的每个元素对应每一维的大小。 数组的维统称为轴(axes), 轴的数量被称作秩(rank) NumPy数组的另一个特点是大小固定,也就是说,创建数组时一旦指定好大小,就不会再发生改变。 这与 Python的列表有所不同,列表的大小是可以改变的。 定义ndarray最简单的方式是使用 array()函数 ,以python列表作为参数,列表的元素即是ndarray的元素 >> > import numpy as np >> > a = np . array ( [ 1 , 2 , 3 ] ) >> > a array ( [ 1 , 2 , 3 ] ) >> > 检测新创建的对象是否是ndarray很简单,只需要把新声明的变量传递给 type()函数 即可 >> > type ( a ) <

numpy——高级索引

浪尽此生 提交于 2020-02-01 15:38:10
numpy高级索引:   NumPy 比一般的 Python 序列提供更多的索引方式。除了之前看到的用整数和切片的索引外,数组可以由整数数组索引、布尔索引及花式索引 1 整数索引   除了支持python中list那样索引之外,还支持以下实例获取数组中(0,0),(1,1)和(2,0)位置处的元素    import numpy as np x = np.array([[1, 2], [3, 4], [5, 6]]) y = x[[0,1,2], [0,1,0]] # 指获取索引(0,0),(1,1),(2,0) print (y) # [1 4 5]   同时 切片操作支持多维数组: import numpy as np x = np.arange(100).reshape(4,25) print(x) print('------------------------------') print(x[0:10:2])   结果: [[ 0 1 2 3 4 5 6 7 8 9 10 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 36 37 38 39 40 41 42 43 44 45 46 47 48 49] [50 51 52 53 54 55 56 57 58 59 60

numpy学习(一)

元气小坏坏 提交于 2020-02-01 12:48:15
  小编整理了一些numpy常用的函数,也是方便小编以后查看。 为了方便 import numpy as np 。 1 np.array( object , dtype = None , copy = True , order = None , subok = False , ndmin = 0 )   常用的有dtype,ndim,写参数时要指名。   dtype的类型有: np.int64 #Signed 64-bit integer types np.float32 #Standard double-precision floating point np.complex #Complex numbers represented by 128 floats np.bool #Boolean type storing TRUE and FALSE values np.object #Python object type np.string_ #Fixed-length string type np.unicode_ #Fixed-length unicode type 2 数据类型对象(dtype)   C++/C 这样定义一个结构体类型,里面又许多不同的数据: struct node{ int age; string name; bool sex; };   np

Python学习:array模块

南楼画角 提交于 2020-02-01 08:55:43
简介 array模块定义了一种对象类型,该对象类型很类似于列表,但是对象中存储的数据类型是确定的,比如字符型、整数型、浮点型等,在array对象创建时,array对象中存储的数据类型需通过一个type code确定,在Python中,array支持的type code如下: Type Code C Type Python Type Min size in Bytes ‘b’ signed char int 1 ‘B’ unsigned char int 1 ‘u’ Py_Unicode unicode character 2 ‘h’ signed short int 2 ‘H’ unsigned short int 2 ‘i’ signed int int 2 ‘I’(大写的i) unsigned int int 2 ‘l’(小写的L) signed long int 4 ‘L’ unsigned long int 4 ‘q’ signed long long int 8 ‘Q’ unsigned long long int 8 ‘f’ float float 4 ‘d’ double float 8 类与方法属性 class array.array(typecode [, initializer]) 创建一个array对象,限制了array中的数据类型为typecode类型

python创建数组

泪湿孤枕 提交于 2020-02-01 03:44:19
一维数组的创建: 可以直接创建 e = [0, 0, 0] 也可以用for循环创建 e = [0 for i in range(3)] [0, 0, 0] 二维数组的创建: 可以直接创建 e = [[0, 0], [0, 0], [0, 0]] 也可以用for循环创建 e = [[0] for i in range(3)] [[0], [0], [0]] 或者 e = [[0 for j in range(2)] for i in range(3)] [[0, 0], [0, 0], [0, 0]] 来源: CSDN 作者: 无名-- 链接: https://blog.csdn.net/qq_41657943/article/details/103603539

Leetcode(中文)笔记

纵饮孤独 提交于 2020-01-31 05:01:09
Leetcode(中文)笔记 最近在刷leetcode,顺便整理一下笔记,用于自我梳理。目前第一遍仅使用Python。 持续更新中。。。 双指针 26.删除排序数组中的重复项 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 暴力求解: class Solution : def removeDuplicates ( self , nums : List [ int ] ) - > int : i = 0 while i < len ( nums ) - 1 : if nums [ i ] == nums [ i + 1 ] : nums . pop ( i + 1 ) else : i += 1 return len ( nums ) 双指针法: 第一个指针:遍历数组,每遇到nums[j] != nums[i],就说明遇到了新的不同数字,记录之; 第二个指针:每遇到新的不同数字时,执行i += 1, i指针有两个作用:记录数组中不同数字的数量;作为修改数组元素的索引index。 最终,返回i+1即可。 class Solution : def removeDuplicates ( self , nums : List [ int ] ) -

python ctypes

随声附和 提交于 2020-01-29 02:11:32
Python调用c库 from ctypes import cdll , c_float import time n = 100000000 dll = cdll . LoadLibrary ( './libcuBlasDot2.so' ) # 声明一个数组类型 INPUT = c_float * n # 实例化数组 input = INPUT ( ) # 为数组赋值(input这个数组是不支持迭代的) for i in range ( n ) : input [ i ] = 1.0 # # 引用C语言的函数 start = time . clock ( ) dll . dot ( input ) end = time . clock ( ) dura = end - start print ( "%s" % dura ) 参考: https://docs.python.org/3.9/library/ctypes.html https://www.jb51.net/article/155591.htm 来源: CSDN 作者: Claroja 链接: https://blog.csdn.net/claroja/article/details/103878631