python中ndarray对象实例化_Python数据分析之Numpy学习 2——NumPy 基础 ndarray对象

Python数据分析之Numpy学习 2 —— NumPy 基础学习

NumPy(Numerical Python)是高性能科学计算和数据分析的基础包。NumPy的主要对象是同构数据多维容器(homogeneous multidimensional array)——ndarray,也就是说每一个ndarray都是一个相同类型元素组成的表格(二维)。在NumPy中维度(dimensions)叫做轴(axes),轴的个数叫做秩(rank)。轴这个概念必须牢记,否则放弃吧。首先轴是从0开始计的,0代表最高维,次高维是1,以此类推。

约定:

import numpy as np

ndarray对象的常用属性

创建ndarray

函数说明

np.array(data,dtype=None, order=None)

将数据data(列表、元组、数组或其他序列类型)转换为ndarray。要么推断出dtype,要么显示指定dtype。默认直接复制数据。order默认是A(可能是C可能是F还可能是其它)

np.asarray(data, dtype=None, order=None)

将输入数据转换为ndarray,data同上还可以是ndarray,如果是ndarray就不进行复制。dtype同上,order是重塑中行优先C还是列优先F,默认C语言风格。

np.arange(10,30,5,dtype=None)

开始,结束,步长和内置的range相同

np.ones( (2,3,4), dtype=None) 、np.ones_like(a)

根据指定的形状和dtype创建一个全1的数组。ones_like以另一个数组为参数,创建形状和dtype相同的全1数组。

np.zeros() 、np.zeros_like()

全0数组,类似ones和ones_like。

np.empty() 、np.empty_like()

创建数组,只分配内存空间但不填充任何值,所以返回的是垃圾值。类似ones和ones_like。

np.eye(N, M=None, k=0, dtype=) 、np.identity(n, dtype=None)

eye创建的是N*M的数组,默认M=N,k取整数,正数对角线向上移k,负数对角线向下移k。identity创建一个N*N单位矩阵(对角线为1,其余全0)的数组

示例 array

numpy.array(object, dtype=None, copy=True, order=None, subok=False, ndmin=0)

import numpy as npa = np.array([1,2,3]) print a

输出如下:

[1, 2, 3]

# 多于一个维度 import numpy as npa = np.array([[1, 2], [3, 4]]) print a

输出如下:

[[1, 2][3, 4]]

# dtype 参数 import numpy as npa = np.array([1, 2, 3], dtype = complex) print a

输出如下:

[ 1.+0.j, 2.+0.j, 3.+0.j]

索引,切片和迭代

一维数组可以被索引、切片和迭代,就像列表和其它Python序列。

>>> a = arange(10)**3>>> aarray([ 0, 1, 8, 27, 64, 125, 216, 343, 512, 729])>>> a[2]8>>> a[2:5]array([ 8, 27, 64])>>> a[:6:2] = -1000 # equivalent to a[0:6:2] = -1000; from start to position 6, exclusive, set every 2nd element to -1000>>> aarray([-1000, 1, -1000, 27, -1000, 125, 216, 343, 512, 729])>>> a[ : :-1] # reversed aarray([ 729, 512, 343, 216, 125, -1000, 27, -1000, 1, -1000])>>> for i in a:... print i**(1/3.),...nan 1.0 nan 3.0 nan 5.0 6.0 7.0 8.0 9.0

多维数组可以每个轴有一个索引。这些索引由一个逗号分隔的元组给出。

>>> def f(x,y):... return 10*x+y...>>> b = fromfunction(f,(5,4),dtype=int)>>> barray([[ 0, 1, 2, 3], [10, 11, 12, 13], [20, 21, 22, 23], [30, 31, 32, 33], [40, 41, 42, 43]])>>> b[2,3]23>>> b[0:5, 1] # each row in the second column of barray([ 1, 11, 21, 31, 41])>>> b[ : ,1] # equivalent to the previous examplearray([ 1, 11, 21, 31, 41])>>> b[1:3, : ] # each column in the second and third row of barray([[10, 11, 12, 13], [20, 21, 22, 23]])

组合(stack)不同的数组

几种方法可以沿不同轴将数组堆叠在一起:

>>> a = floor(10*random.random((2,2)))>>> aarray([[ 1., 1.], [ 5., 8.]])>>> b = floor(10*random.random((2,2)))>>> barray([[ 3., 3.], [ 6., 0.]])>>> vstack((a,b))array([[ 1., 1.], [ 5., 8.], [ 3., 3.], [ 6., 0.]])>>> hstack((a,b))array([[ 1., 1., 3., 3.], [ 5., 8., 6., 0.]])

函数

column_stack

以列将一维数组合成二维数组,它等同与

vstack

对一维数组。

>>> column_stack((a,b)) # With 2D arraysarray([[ 1., 1., 3., 3.], [ 5., 8., 6., 0.]])>>> a=array([4.,2.])>>> b=array([2.,8.])>>> a[:,newaxis] # This allows to have a 2D columns vectorarray([[ 4.], [ 2.]])>>> column_stack((a[:,newaxis],b[:,newaxis]))array([[ 4., 2.], [ 2., 8.]])>>> vstack((a[:,newaxis],b[:,newaxis])) # The behavior of vstack is differentarray([[ 4.], [ 2.], [ 2.], [ 8.]])

row_stack

函数,另一方面,将一维数组以行组合成二维数组。

对那些维度比二维更高的数组,

hstack

沿着第二个轴组合,

vstack

沿着第一个轴组合,

concatenate

允许可选参数给出组合时沿着的轴。

函数和方法(method)总览

这是个NumPy函数和方法分类排列目录。这些名字链接到NumPy示例,你可以看到这些函数起作用。[^5]

创建数组

arange, array, copy, empty, empty_like, eye, fromfile, fromfunction, identity, linspace, logspace, mgrid, ogrid, ones, ones_like, r , zeros, zeros_like

转化

astype, atleast 1d, atleast 2d, atleast 3d, mat

操作

array split, column stack, concatenate, diagonal, dsplit, dstack, hsplit, hstack, item, newaxis, ravel, repeat, reshape, resize, squeeze, swapaxes, take, transpose, vsplit, vstack

询问

all, any, nonzero, where

排序

argmax, argmin, argsort, max, min, ptp, searchsorted, sort

运算

choose, compress, cumprod, cumsum, inner, fill, imag, prod, put, putmask, real, sum

基本统计

cov, mean, std, var

基本线性代数

cross, dot, outer, svd, vdot

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/410207.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PHP常见设计模式

简单工厂<?php# 简单工厂abstract class mycoach{public function __construct(){}}class cultivatecpc extends mycoach{public function __construct(){echo "把陈培昌培养为搏击教练"."\n";}}class cultivatecj extends mycoach{public function __…

[html] 如何使用html5进行图片压缩上传?

[html] 如何使用html5进行图片压缩上传&#xff1f; 1.获取到图片的base64格式&#xff1b; 2.图片加载完成后&#xff0c;把图片转化为canvas&#xff1b; 3.使用canvas的toDataURL按照自己的需要进行压缩&#xff1b; 4.把dataURL转化成blob对象&#xff1b; 5.把blob对象转…

错误An entity with the same identity already exists in this EntitySet RIA

错误信息&#xff1a;缺少对象&#xff0c;An entity with the same identity already exists in this EntitySet RIA 解决方案&#xff1a; 1、如果你的表是要更新的&#xff0c;需要设置主键&#xff1b; 2、identity字段&#xff0c;如果你的数据中这个字段值有零的就特别要…

python实现离线翻译_10分钟教你用Python实现微信翻译机器人

相信大家在日常学习或者是阅读英文文章的过程中&#xff0c;难免会出现几个不认识的单词&#xff0c;或者想快速翻译某段英文的意思。今天&#xff0c;利用Python爬虫等知识&#xff0c;教大家打造一个微信下的翻译小助手。好吧&#xff0c;开始干活。先来看看效果如何发送要翻…

C# 字符、字符串过滤,只能输入数字、中文、英文、大写、小写(转)

private void TextBox1_KeyPress(object sender, KeyPressEventArgs e) //文本框输入字符过滤 { if (Convert.ToInt32(e.KeyChar) > 48 && Convert.ToInt32(e.KeyChar) < 58 || //包括数字 //(Convert…

[html] 你知道<a>标签的target属性规定在何处打开链接文档吗?

[html] 你知道标签的target属性规定在何处打开链接文档吗&#xff1f; _self 自身打开&#xff0c;效果即跳转_blank 新开标签页打开_parent 父_top 顶级我们常用的恐怕一般只有2种&#xff0c;_blank,_self另外有个细节是为什么链接是a标签&#xff0c;而不是b,c呢&#xff0c…

lombok依赖_为什么有些公司不让用 Lombok ?不要问,自己看吧

来源&#xff1a;toutiao.com/i6820517160964588044如果您正在阅读此文&#xff0c;想必您对Project Lombok已经有了一段时间的了解。您是否正准备拥抱Lombok?还是正准备将如此酷炫的项目推荐给你的团队&#xff1f;如果您准备那么做&#xff0c;不妨听听我在使用Lombok一年后…

Solaris10 JumpStart服务器配置

1. 创建JumpStart安装服务器 创建安装目录 mkdir -p /jumpstart/Solaris10U10_SPARC/install 创建install server cd /cdrom/sol_10_811_sparc/Solaris_10/Tools ./setup_install_server /jumpstart/Solaris10U10_SPARC/install 2. 创建client配置文件 创建配置文件目录 mkdir …

写入文件

string strPath Server.MapPath("../NumberLog.txt"); FileStream fs new FileStream(strPath, FileMode.Append); StreamWriter sw new StreamWriter(fs); //开始写入 sw.Write(string " \r\n…

ocx控件 postmessage消息会消失_实战经验:如何检测CMFCTabCtrl控件标签页切换事件...

MFC库中经常会使用到的一个控件是Tab标签页控件&#xff0c;这个控件在展现多个平级数据集非常合适。与控件对应的&#xff0c;是MFC库中的两个类&#xff1a;CMFCTabCtrl和CMFCBaseTabCtrl&#xff0c;其中CMFCTabCtrl继承自CMFCBaseTabCtrl&#xff0c;而CMFCBaseTabCtrl又继…

研究生生活总结(2):从技术到研究再到技术的过程

前几天写了关于研究生当助教的那些事&#xff0c;今天来说说本科和研究生期间在技术和学术上的感受。其实这个题目有点伪&#xff0c;因为其中介绍了大量的本科时的东西。 大学之前&#xff0c;对电脑的认识很少&#xff0c;初中和高中微机课接触了一点&#xff0c;去过几次网吧…

c++ 用eclipse建立一个类,并实例化并运行

新建项目file->new->c/c project 项目结构cpc.cpp// // Name : cpc.cpp // Author : cpc // Version : // Copyright : Your copyright notice // Description : Hello World in C, Ansi-style //#include <iostream> #include "mycoach.h&…

[html] 你是如何理解html与css分离的?

[html] 你是如何理解html与css分离的&#xff1f; 我粗浅的理解是 降低代码的亢余和复杂性 各分其事 便于编写和维护个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端面试…

ps制作20种特效文字_用PS制作裂、火、电特效——电

本例是关于人物的电特效。包含的技术点比较多&#xff0c;其中最重要的技术是质感合成技术与变形技术。案例步骤&#xff08;1&#xff09;按CtrlN组合键新建一个19491417像素的文档。然后新建一个图层&#xff0c;接着打开渐变编辑器&#xff0c;设置第一个颜色的色标为&#…

JQuery放大镜效果

在网上找了些实现放大镜效果的方法&#xff0c;感觉这个方法符合我的要求就摘过来了&#xff0c;非原创 在一些电子商务或商品展示网上&#xff0c;为了更好的显示商品&#xff0c;一般都会添加放大镜的效果。 如图&#xff1a;&#xff08;当把鼠标放到小图片上&#xff0c;右…

echarts轨迹图,各个城市线路图轨迹如何取值

ehcarts官网网站给的是北京交通线路图https://www.echartsjs.com/examples/editor.html?clines-bmap-effect&#xff0c;这里其实有误区。 在开发项目的时候&#xff0c;我一直以为将某一路公交车的每个站点的坐标&#xff08;经纬度&#xff09;&#xff0c;放到series中的da…

如何查看电脑显卡配置_组装电脑:电脑配置显卡推荐

重点提醒&#xff1a;最新3000显卡上市&#xff0c;以下内容在发布之后会更新。现在不要着急购买2060系列的显卡。 今年显卡价格在大量矿卡的冲击下&#xff0c;价格普遍下滑&#xff0c;老黄家的1000系列也升级到1600系列&#xff0c;而AMD的扛把子蓝宝石RX580 8G价格更是一路…

智能优化算法应用:基于蛇优化算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于蛇优化算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于蛇优化算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.蛇优化算法4.实验参数设定5.算法结果6.参考文…

python网络编程知识点_python 网络编程要点

From http://www.zhihu.com/question/19854853Python网络编程是一个很大的范畴&#xff0c;个人感觉需要掌握的点有&#xff1a;1. 如何使用Python来创建socket, 如何将socket与指定的IP地址和端口进行绑定&#xff0c;使用socket来发送数据&#xff0c;接受数据&#xff0c;2.…

J2EE技术(三)——JMS

一、JMS基本思想 JMS&#xff08;Java Message Service&#xff09;即java消息服务&#xff0c;提供了一组标准的java API&#xff0c;用于企业级的消息处理。通过JMS可以在java程序之间发送和接受消息以达到交换数据的目的。 一个JMS应用由以下几部分组成&#xff1a; 1、 …