numpy学习总结

numpy用法

导入:import numpy as np
生成矩阵:array = np.array([[1,2,3],[4,5,6]])
矩阵维度:array.ndim
矩阵形状:array.shape
矩阵大小:array.size
矩阵元素类型:array.dtype

创建array

a = np.array([1,2,3], dtype=np.int32)
dtype:指定数据类型
矩阵维度:创建时方括号的层数代表矩阵的维度

常用用法

zero = np.zeros((2, 3)) 生成两行三列全为0的矩阵
one = np.empty((2, 3)) 生成两行三列全为1的矩阵
empty = np.empty((3, 2)) 生成三行两列全为接近于0但不是0的矩阵
e = np.arange(10) 此种用法与python中的range类似
h = np.arange(10).reshape(2, 4) 重新定义矩阵的形状

矩阵操作(要求:两个矩阵形状相同)

arr1:矩阵1
arr2:矩阵2
加法:arr1 + arr2 按位相加
减法:arr1 - arr2 按位相减
乘法:arr1 * arr2 按位相乘
求幂:arr1 ** arr2 ****按位操作****
除法:arr1 / arr2 按位相除
取余:arr1 % arr2 按位取余
取整:arr1 // arr2 按位取整
与数的操作:arr1 + 2 矩阵中的每位都与2操作
比较操作:arr1 > 3 判断矩阵中那些元素大于3,返回一个布尔型的矩阵

矩阵运算(根据线性代数中的矩阵操作进行加减乘除)

arr1:矩阵1
arr2:矩阵2
矩阵乘法:np.dot(arr1, arr2)/arr1.dot(arr2)
转置矩阵:arr1.T/np.transpose(arr1)
numpy中生成随机数
arr1 = np.random.random((3, 2)) 生成三行两列从0-1的随机数
arr2 = np.random.normal(size=(3, 2)) 生成三行两列符合标准正态分布的随机数
arr3 = np.random.randint((0, 10, size=(3, 2))) 生成三行两列0-10的随机整数
单个矩阵求和:np.sum(arr1)
单个矩阵对列求和:np.sum(arr1, axis=0)
单个矩阵对行求和:np.sum(arr1, axis=1)
单个矩阵中求最大/最小值:np.max(arr1)/np.min(arr1)
求某个矩阵中最小值/最大值的索引:np.argmin(arr1)/np.argmax(arr1)
求矩阵的平均值:np.mean(arr1)/arr1.mean()
求矩阵中位数:np.median(arr1)
矩阵开方:np.sqrt(arr1)
矩阵排序:np.sort(arr1) ****对每行进行排序****
np.clip(arr1, 2, 7):对于arr1中的元素小于2就变成2,大于7就变成7

numpy索引

a = np.arange(2, 14):与python索引类似,用法可参照python中list用法
多维矩阵:
a[i]:表示第i+1行
a[i][j]:表示第i+1行第j+1列
a[:,j]:表示第j+1列
迭代行

for i in a:
    print(i)

迭代列

for i in a.T:
    print(i)

迭代元素

for i in a.flat:
    print(i)

array合并

垂直合并:np.vstack((arr1, arr2))
水平合并:np.hstack((arr1, arr2))
np.concatenate((arr1, arr2),axis=0):可自主指定合并方式,合并的array维度要相同,参数axis=0时纵向合并,参数axis=1时横向合并。
一维array增加一个维度:np.newaxis
实例:

arr1 = np.arange(1,4)
arr1_2 = arr1[:,np.newaxis]
arr1_2变成三行一列
arr1_3 = arr1[np.newaxis,:]
arr1_3变成一行三列

np.atleast_2d(arr)/np.atleast_3d(arr):判断arr是否最少为二维/三维array,如果不是转换成arr[np.newaxis,:]这种形式

array分割

np.split(arr, 2, axis=1):按列分割,分成两份
np.split(arr, 3, axis=0):按行分割,分成三份
np.array_split(arr, 2, axis=1):按列分割,分成两份,不等分割
np.array_split(arr, 3, axis=0):按行分割,分成三份,不等分割
np.vsplit(arr, 3):按行分割
np.hsplit(arr, 2):按列分割

numpy的浅拷贝和深拷贝

浅拷贝:类似值引用,指向同一块内存地址,只要一个改变大家都会改变
深拷贝:arr.copy() 重新开辟一块内存空间,几者之间互不影响

原文地址:https://www.cnblogs.com/miao-study/p/11716595.html

时间: 2024-08-30 16:05:24

numpy学习总结的相关文章

Numpy学习笔记(一)

Python本身支持的数据结构不多,除了int.float和string等一些常规的之外,还有列表.元祖.字典,都有自己的属性和方法,怎么说呢,功能已经足够强大,解决一般的问题已经足够,可当数据量增大,计算形式变得多样,这种普通的数据结构效率不高,况且python本身对于数组的支持不是很好,这也是为什么会有一批类似于numpy.scipy.panda等第三方库,大大扩展了python的功能,胶水的本质越来越突出.学习的成本也不高,不会像重新学一门语言那么困难,况且据了解,python的科学计算能

Numpy学习笔记(二)

最近一直在学HTML5和CSS3,Numpy的东西都有些生疏,那本书是已经看完了的,紧跟着相关的代码也都敲了一遍,还是发现了一些问题,因为这样的学习方式,总感觉太被动,紧紧跟着示例代码,缺少了整体观,即使你现在问我Numpy可以处理什么问题,我还是回答不出.所以,有必要回头重来一遍,再一次审视代码背后的意义,写博客真的是一个很不错的方式,毕竟,如果你不懂,写出来的文字必然也是混乱的. 那,下面记录一下Numpy学习笔记(二) Example1 文件读写:数据不应该仅仅存在内存里,应该及时保存在硬

『Python』Numpy学习指南第十章_高端科学计算库scipy入门(系列完结)

简介: scipy包包含致力于科学计算中常见问题的各个工具箱.它的不同子模块相应于不同的应用.像插值,积分,优化,图像处理,,特殊函数等等. scipy可以与其它标准科学计算程序库进行比较,比如GSL(GNU C或C++科学计算库),或者Matlab工具箱.scipy是Python中科学计算程序的核心包;它用于有效地计算numpy矩阵,来让numpy和scipy协同工作. 在实现一个程序之前,值得检查下所需的数据处理方式是否已经在scipy中存在了.作为非专业程序员,科学家总是喜欢重新发明造轮子

NumPy学习笔记 一

NumPy学习笔记 一 <NumPy学习笔记>系列将记录学习NumPy过程中的动手笔记,前期的参考书是<Python数据分析基础教程 NumPy学习指南>第二版.<数学分析>第四版(华东师范大学数学系).<概率论与数理统计>(陈希孺,中科大出版).<概率论与数理统计>第二版(茆诗松.程依明等编).<组合最优化:理论与方法>(现代数学译丛23).笔记一主要记录NumPy&SciPy及相关软件的环境准备部分. NumPy的官方网站

NumPy学习笔记 三 股票价格

NumPy学习笔记 三 股票价格 <NumPy学习笔记>系列将记录学习NumPy过程中的动手笔记,前期的参考书是<Python数据分析基础教程 NumPy学习指南>第二版.<数学分析>第四版(华东师范大学数学系).<概率论与数理统计>(陈希孺,中科大出版).<概率论与数理统计>第二版(茆诗松.程依明等编).<组合最优化:理论与方法>(现代数学译丛23).笔记三主要操作股票价格数据. 股票价格数据通常包括开盘价.最高价.最低价和收盘价.

numpy 学习总结

numpy 学习总结 作者:csj更新时间:01.09 email:[email protected] 说明:因内容较多,会不断更新 xxx学习总结: #生成数组/使用astype/取值和赋值/ 数学运算 / 内置的创建数组的函数/ 文件输入输出 # Numpy是Python语言的一个library numpy # Numpy主要支持矩阵操作和运算 # Numpy非常高效,core代码由C语言写成 # pandas也是基于Numpy构建的一个library # 现在比较流行的机器学习框架(例如T

分享《Python数据分析基础教程:NumPy学习指南(第2版)》高清中文PDF+英文PDF+源代码

下载:https://pan.baidu.com/s/1YSD97Gd3gmmPmNkvuG0eew更多资料分享:http://blog.51cto.com/3215120 <Python数据分析基础教程:NumPy学习指南(第2版)>高清中文PDF+高清英文PDF+源代码 高清中文版PDF,249页,带目录和书签,文字能够复制粘贴:高清英文版PDF,310页,带目录和书签,文字能够复制粘贴:中英文两版可以对比学习.配套源代码:经典书籍,讲解详细:其中高清中文版如图: 原文地址:http://

NumPy学习(让数据处理变简单)

NumPy学习(一) NumPy数组创建 NumPy数组属性 NumPy数学算术与算数运算 NumPy数组创建 NumPy 中定义的最重要的对象是称为 ndarray 的 N 维数组类型. 它描述相同类型的元素集合. 可以使用基于零的索引访问集合中的项目. ndarray中的每个元素在内存中使用相同大小的块. ndarray中的每个元素是数据类型对象的对象(称为 dtype). 从ndarray对象提取的任何元素(通过切片)由一个数组标量类型的 Python 对象表示. 它从任何暴露数组接口的对

NumPy学习(索引和切片,合并,分割,copy与deep copy)

NumPy学习(索引和切片,合并,分割,copy与deep copy) 目录 索引和切片 合并 分割 copy与deep copy 索引和切片 通过索引和切片可以访问以及修改数组元素的值 一维数组 程序示例 import numpy as np #索引与切片 array=np.arange(3,15) print(array) print(array[3])#数组下标为3的元素 print('\n') print(array[1:3])#取从下标1到下标3,不包括下标3 print(array[

Numpy学习:《Python数据分析基础教程NumPy学习指南第2版》中文PDF+英文PDF+代码

NumPy是一个优秀的科学计算库,提供了很多实用的数学函数.强大的多维数组对象和优异的计算性能,不仅可以取代Matlab和Mathematica的许多功能,而且业已成为Python科学计算生态系统的重要组成部分.但与这些商业产品不同,它是免费的开源软件. 推荐学习<Python数据分析基础教程NumPy学习指南第2版>,通过书中丰富的示例,学会Matplotlib绘图,并结合使用其他Python科学计算库(如SciPy和Scikits),让工作更有成效,让代码更加简洁而高效. 学习参考: &l