numpy

1.  创建对象

维度(dimensions):轴

轴的个数:秩(rank)

Numpy最重要的一个特点就是其N维数组对象(即ndarray)

创建数组最简单的函数就是用array函数:

Import numpy

data = [[1,2,3],[2,3,4],[4,5,6]]

ndarray_object = numpy.array(data)

ndarray_object = numpy.ones((3,4))

ndarray_object = numpy.zeros((3,4))

array 将输入数据(列表、元组、数组或者其他序列类型)转换为ndarray。要么推断出dtype,要么显示制定dtype。默认直接复制输入数据。

asarray 将输入转换为ndarray,如果输入本身就是一个ndarray就不进行复制。

arrange 类似于内置的range,但返回的是一个ndarray而不是列表。

ones,ones_like 根据制定的形状和dtype创建一个全1数组。ones_like一另一个数组为参数,并根据其形状和dtype创建一个全1数组。

zeros,zeros_like 类似于ones和ones_like,只不过产生的是全0数组而已。

empty,empty_like 创建新数组,只分配内存空间但不填充任何值。

eye,identity 创建一个正方的N x N 单位矩阵(对角线为1,其余为0)

2.  ndarray的数据类型

dtype()是一个特殊的对象,它含有ndarray将一块内存解释为特定数据类型所需的信息。

numpy中的数据类型转换,不能直接改原数据的dtype!只能用函数astype()。

3.  数组与标量的运算

大小相等的数组之间的任何算术运算都会将运算进行到元素级。

同样,数组和标量的算术运算也会将那个标量传播到各个元素。

不同大小的数组之间的运算叫做广播。

4.  基本的索引和切片

>>>import numpy as np

>>>a=[1,2,3,4,5]

>>>np.array(a)

>>>array([1, 2, 3, 4, 5])

>>>b=np.array(a)

>>>b[1:3]

>>>array([2, 3])

>>>c=b[1:3]

>>>c

>>>array([2, 3])

>>>c[:]=12

>>>a

>>>[1, 2, 3, 4, 5]

>>>b

>>>array([ 1, 12, 12,  4,  5])

如果你想得到的是ndarray切片的一份副图而非视图,就需要显示低进行复制操作例如,

b[2:3].copy。

>>>names = np.array([["ryan"],["tom"],["hello"],["lucy"]])

>>>names

array([['ryan'],

['tom'],

['hello'],

['lucy']], dtype='|S5')

>>>names[2]="whathello"

>>>names

array([['ryan'],

['tom'],

['whath'],

['lucy']], dtype='|S5')

>>>b = np.array([["ryan"],["tom"],["whathello"],["lucy"]])

>>>b

array([['ryan'],

['tom'],

['whathello'],

['lucy']], dtype='|S9')

>>>b=="ryan"

array([[ True],

[False],

[False],

[False]])

Python关键字and 和 or在布尔数组中无效。

5.  数组转置和轴对换

>>>a=np.arange(15).reshape((3,5))

>>>a

array([[ 0,  1,  2,  3,  4],

[ 5,  6,  7,  8,  9],

[10, 11, 12, 13, 14]])

6.     函数和方法method总览

# 1.创建数组

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

# 2.转化

astype, atleast ld, atleast 2d, atleast 3d, mat

# 3.操作

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

# 4.询问

all, any, nonzero, where

# 5.排序

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

# 6.运算

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

# 7.基本统计

cov, mean, std, var

# 8.基本线性代数

cross, dot, outer, svd, vdot

Python中的numpy模块解析的更多相关文章

  1. Python中的urllib2模块解析

    Name urllib2 - An extensible library for opening URLs using a variety of protocols 1. Description Th ...

  2. Python中第三方的用于解析HTML的库:BeautifulSoup

    背景 在Python去写爬虫,网页解析等过程中,比如: 如何用Python,C#等语言去实现抓取静态网页+抓取动态网页+模拟登陆网站 常常需要涉及到HTML等网页的解析. 当然,对于简单的HTML中内 ...

  3. Python中的logging模块就这么用

    Python中的logging模块就这么用 1.日志日志一共分成5个等级,从低到高分别是:DEBUG INFO WARNING ERROR CRITICALDEBUG:详细的信息,通常只出现在诊断问题 ...

  4. Python中的random模块,来自于Capricorn的实验室

    Python中的random模块用于生成随机数.下面介绍一下random模块中最常用的几个函数. random.random random.random()用于生成一个0到1的随机符点数: 0 < ...

  5. Python中的logging模块

    http://python.jobbole.com/86887/ 最近修改了项目里的logging相关功能,用到了python标准库里的logging模块,在此做一些记录.主要是从官方文档和stack ...

  6. Python中的random模块

    Python中的random模块用于生成随机数.下面介绍一下random模块中最常用的几个函数. random.random random.random()用于生成一个0到1的随机符点数: 0 < ...

  7. 浅析Python中的struct模块

    最近在学习python网络编程这一块,在写简单的socket通信代码时,遇到了struct这个模块的使用,当时不太清楚这到底有和作用,后来查阅了相关资料大概了解了,在这里做一下简单的总结. 了解c语言 ...

  8. python中的StringIO模块

    python中的StringIO模块 标签:python StringIO 此模块主要用于在内存缓冲区中读写数据.模块是用类编写的,只有一个StringIO类,所以它的可用方法都在类中.此类中的大部分 ...

  9. python中的select模块

    介绍: Python中的select模块专注于I/O多路复用,提供了select  poll  epoll三个方法(其中后两个在Linux中可用,windows仅支持select),另外也提供了kqu ...

随机推荐

  1. Python Revisited Day 01

    逻辑操作符 身份操作符 is a = ['AAA', 3, None] b = ['AAA', 3, None] a is b #False b = a a is b #True 身份比较速度快,原因 ...

  2. centos7 安装phpmyadmin

    1.先安装epel,不然安装pgpmyadmin时会出现找不到包. yum install epel-release rpm -ivh http://rpms.famillecollet.com/en ...

  3. mysql触发器,视图,游标

    什么事触发器: 触发器是一中特殊的存储过程,主要是通过事件来触发而被执行的.它可以强化约束,来维护数据的完整性和一致性,可以跟踪数据库内的操作从而不允许未经许可的更新和变化.可以联级运算.如,某表上的 ...

  4. ios 后台下载,断点续传总结

    2018年12月05日 16:09:00 weixin_34101784 阅读数:5 https://blog.csdn.net/weixin_34101784/article/details/875 ...

  5. Vue-router路由使用,单页面的实现

    1.安装路由系统 NPM npm install vue-router 2.在main.js中进入引用 import VueRouter from 'vue-router' 3.创建三个空的组件: V ...

  6. linux命令:拷贝命令家族(cp、scp、rsync)

    Linux命令中:rsync和cp之间的区别 - 小 楼 一 夜 听 春 雨 - 博客园https://www.cnblogs.com/kex1n/p/7008178.html cp,scp,rsyn ...

  7. js压箱底的宝贝

    框架的确好用, 不过他们也隐藏了JavaScript中丑陋的细节和DOM的运作机制. 如果你的目标是敢于自称"我懂JavaScript", 那么花时间学习框架无异于南辕北辙. 下面 ...

  8. Linux中各个目录作用

    对于linux新手来说,最感到迷惑的问题之一就是文件都存在哪里呢?特别是对于那些从windows转过来的新手来说,linux的目录结构看起来有些奇怪哦.比如没有C盘,没有分盘符,一大堆不知道用途的文件 ...

  9. Day 4-8 hashlib加密模块

    HASH Hash,一般翻译做“散列”,也有直接音译为”哈希”的,就是把任意长度的输入(又叫做预映射,pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值.这种转换是一种压缩映射 ...

  10. K3BOM跳层

    A自制件,B自制件,C外购件 ,结构为A-B-C 如果需要跳层,则设置A-B跳层,B-C跳层,则生成A计划订单,C计划订单, 假设单独A-B跳层,则MRP运算出的结果也是A计划订单,B计划订单,C计划 ...