python数组

numpy数组符号化与函数向量化

匆匆过客 提交于 2019-11-28 04:17:29
计算净额成交量 Key_Function: np.sign(数组): 返回数组中每个元素的正负符号 np.piecewise(数组, 条件列表, 返回值列表): 通过条件列表中的元素, 判断数组中的元素在条件列表中的索引, 取返回值列表对应的索引, 当做返回值, 用这些返回值组成一个新的数组 Code: import numpy as np import matplotlib.pyplot as plt c, v = np.loadtxt('BHP.csv', delimiter=',', usecols=(6,7), unpack=True) # c是每日收盘价, v是每日成交量 ''' c [ 93.72 95.64 94.56 93.3 93.93 92.39 92.11 92.36 91.76 93.91 94.6 93.27 94.43 96.02 95.76 94.47 94.34 92.22 88.31 89.59 89.02 86.95 84.88 87.38 88.56 89.59 88.71 90.02 91.26 90.67] v [ 1741900. 2620800. 2461300. 3270900. 2650200. 4667300. 5359800. 7768400. 4799100. 3448300. 4719800. 3898900.

Python 科学计算库numpy

 ̄綄美尐妖づ 提交于 2019-11-28 02:59:38
Numpy基础数据结构 NumPy数组是一个多维数组对象,称为ndarray。其由两部分组成: 实际的数据 描述这些数据的元数 # 多维数组ndarray import numpy as np ar = np.array([1,2,3,4,5,6,7]) print(ar) # 输出数组,注意数组的格式:中括号,元素之间没有逗号(和列表区分) print(ar.ndim) # 输出数组维度的个数(轴数),或者说“秩”,维度的数量也称rank print(ar.shape) # 数组的维度,对于n行m列的数组,shape为(n,m) print(ar.size) # 数组的元素总数,对于n行m列的数组,元素总数为n*m print(ar.dtype) # 数组中元素的类型,类似type()(注意了,type()是函数,.dtype是方法) print(ar.itemsize) # 数组中每个元素的字节大小,int32l类型字节为4,float64的字节为8 print(ar.data) # 包含实际数组元素的缓冲区,由于一般通过数组的索引获取元素,所以通常不需要使用这个属性。 ar # 交互方式下输出,会有array(数组) # 数组的基本属性 # ① 数组的维数称为秩(rank),一维数组的秩为1,二维数组的秩为2,以此类推 # ② 在NumPy中,每一个线性的数组称为是一个轴

8.19 day18

我的梦境 提交于 2019-11-27 21:33:54
numpy模块 专门进行数组(矩阵)的运算 给定两个列表,将他们看成向量(数组)如何让他们的元素一一相乘,得到[4, 10, 18]结果呢? lis1 = [1, 2, 3] lis2 = [4, 5, 6] 学过for循环后很容易就能想到方法: lis = [] for i in range(len(lis1)): lis.append(lis1[i] * lis2[i]) print(lis) # [4, 10, 18] 但是如果你使用numpy的话,只要一行代码就可以实现了, import numpy as np arr1 = np.array([1, 2, 3]) arr2 = np.array([4, 5, 6]) print(arr1*arr2) # [ 4 10 18] 是不是觉得这个方法还是 有点顶的 当然numpy模块的用法可不仅仅这么简单,他能实现大部分数组的运算 那么numpy的数组是怎么表达的呢? arr = np.array([1, 2, 3]) print(arr) # 一维的numpy数组 结果为: [1 2 3] arr2 = np.array([[1, 2, 3], [4, 5, 6]]) print(arr2) # 二维的numpy数组(一般就是二维) 结果为: [[1 2 3] [4 5 6]] arr3 = np.array([[[1, 2,

Numpy 介绍

坚强是说给别人听的谎言 提交于 2019-11-27 20:17:16
章节 Numpy 介绍 Numpy 安装 NumPy ndarray NumPy 数据类型 NumPy 数组创建 NumPy 基于已有数据创建数组 NumPy 基于数值区间创建数组 NumPy 数组切片 NumPy 广播 NumPy 数组迭代 NumPy 位运算 NumPy 字符串函数 NumPy 数学函数 NumPy 统计函数 NumPy 排序、查找、计数 NumPy 副本和视图 NumPy 矩阵库函数 NumPy 线性代数 Numpy 介绍 Numpy代表numeric python,是一个用于计算、处理多维数组的python包。 NumPy包由Travis Oliphant在2005年创建,基于原来的Numeric模块与Numarray模块,大部分是用c语言编写的。 NumPy提供各种强大的数据结构(多维数组和矩阵),以及对这些数据结构的强大运算能力。 为什么需要NumPy 随着数据科学革命的到来,NumPy、SciPy、pandas等数据分析库得到了很大的发展。python的语法比其他编程语言简单很多,同时又具有强大的数据计算能力,是数据处理编程的首选语言。 NumPy提供了一种方便而高效的方法来处理大量数据。NumPy在矩阵乘法和数据重构方面功能强大,同时性能优秀,可以快速处理大量数据。 使用NumPy进行数据运算有以下优点: NumPy提供对数组/向量运算的强大支持。

Python | Numpy | 读取文件和存储数据

Deadly 提交于 2019-11-27 18:38:26
使用Numpy读取文件 1、纯数字的数组 arr = np.loadtxt('data.txt',delimiter=',') print(arr) [[1. 2. 3.] [4. 5. 6.] [7. 8. 9.]] 2、含有字符串的数组 arr = np.loadtxt('data.txt',str,delimiter=',') print(arr) [['name' 'score'] ['Liyuan' '90'] ['Chenya' '85']] 多文件一起存储,读取 arr1 = np.array([1, 2, 3]) #假设有三个ndarray arr2 = np.eye(5) arr3 = np.zeros((3, 4)) np.savez('arr.npz', x0=arr1, x1=arr2, x2=arr3) #将其保存 f = np.load('arr.npz') #加载 print(f['x1']) #读取 [[1. 0. 0. 0. 0.] [0. 1. 0. 0. 0.] [0. 0. 1. 0. 0.] [0. 0. 0. 1. 0.] [0. 0. 0. 0. 1.]] 来源: CSDN 作者: 訸七 链接: https://blog.csdn.net/nanaanana/article/details/80511239

python -- 借助numpy保存数据为csv格式

南笙酒味 提交于 2019-11-27 18:37:45
借助numpy可以把数组或者矩阵保存为csv文件,也可以吧csv文件整体读取为一个数组或矩阵。 1.csv ==> matrix import numpy my_matrix = numpy.loadtxt(open("D:\\test.csv","rb"), delimiter=",", skiprows=0) 2.matrix ==> csv import numpy numpy.savetxt("new.csv", my_matrix, delimiter=',') 来源: CSDN 作者: Islotus 链接: https://blog.csdn.net/Islotus/article/details/61208690

numpy中基础函数

自闭症网瘾萝莉.ら 提交于 2019-11-27 16:56:23
1.np.arange(n): 生成n个元素的array数组 >>> a = np.arange(4) 2.数组的基本属性   2.1 a.dtype: 数组的数据类型     2.1.1 np.sctypeDict.keys() 获取np所有的内置dtype类型   2.2 a.shape: 数组的形状   2.3 a.ndim: 数组的维度; a.size: 数组占用内存的大小; a.itemsize: 数组占用的字节数   2.3 数组的切片        a[:]        a[-1]        a[-3:1]        a[-3:-1] 3. np.dot: 向量的点乘 4. a.ravel(), a.flatten(): 数组的扁平化,即多维数组转成一维数组 5. a.reshape(2,3,4): 数组转成2个数组,每个数组是3行4列 6. a.transpose(), a.T: 查看数组的转置 7. np.hstack((a,b)): a,b两个数组横向拼接为一个数组 np.vstack((a,b)): a,b两个数组纵向拼接为一个数组,等同于np.colunm_stack((a,b))  np.dstack((a,b)): 假如a是2*2矩阵,b是2*2矩阵,np.dstack也是2*2矩阵,          只不过每个元素,如第一行第一列这个元素

leetcode 27. 移除元素(python)

丶灬走出姿态 提交于 2019-11-27 16:49:20
1. 题目描述 给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。 示例 1: 给定 nums = [3,2,2,3], val = 3, 函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。 你不需要考虑数组中超出新长度后面的元素。 示例 2: 给定 nums = [0,1,2,2,3,0,4,2], val = 2, 函数应该返回新的长度 5, 并且 nums 中的前五个元素为 0, 1, 3, 0, 4。 注意这五个元素可为任意顺序。 你不需要考虑数组中超出新长度后面的元素。 2. 代码 class Solution: def removeElement(self, nums: List[int], val: int) -> int: idx = 0 while idx < len(nums): if nums[idx]==val: nums.pop(idx) else: idx+=1 return len(nums) # N = len(nums) # for i in range(nums.count(val)): # nums.remove

Python:如何求数组连续最大值

本秂侑毒 提交于 2019-11-27 16:40:53
1.重复利用已经计算的子数组和:O(n 2 ) def maxSubArr(arr): if arr == None: print('数组为空') return maxsum = -2**31 i = 0 lens = len(arr) while i<lens : j = i sums = 0 while j<lens : sums += arr[j] if sums > maxsum : maxsum = sums j += 1 i += 1 return maxsum 2.动态规划法:O(n) def maxSubArr(arr): lens = len(arr) if arr == None or lens<1 : print('参数不合法') return ends = alls = arr[0] i = 1 while i<lens : ends = max(ends+arr[i], arr[i]) #包含最后一个元素的最大子数组和 alls = max(ends, alls) #最大子数组和 i += 1 return alls 来源: https://blog.csdn.net/weixin_42712658/article/details/99698085