Numpy 数据类型

bool 用一位存储的布尔类型(值为TRUE或FALSE)
inti 由所在平台决定其精度的整数(一般为int32或int64)
int8 整数,范围为128至127
int16 整数,范围为32 768至32 767
int32 整数,范围为231至231 1
int64 整数,范围为263至263 1
uint8 无符号整数,范围为0至255
uint16 无符号整数,范围为0至65 535
uint32 无符号整数,范围为0至2321
uint64 无符号整数,范围为0至2641
float16 半精度浮点数(16位):其中用1位表示正负号,5位表示指数,10位表示尾数
float32 单精度浮点数(32位):其中用1位表示正负号,8位表示指数,23位表示尾数
float64或float 双精度浮点数(64位):其中用1位表示正负号,11位表示指数,52位表示尾数
complex64 复数,分别用两个32位浮点数表示实部和虚部
complex128或complex 复数,分别用两个64位浮点数表示实部和虚部

一维数组的索引和切片

import numpy as np
d = np.arange(9)
print (d)
# [0 1 2 3 4 5 6 7 8]
print (d[2:4]) # 获取2~4 之间的元素
# [2 3]
print (d[::-1]) # 负数下标翻转数组
# [8 7 6 5 4 3 2 1 0]

# 改变数组的维度
# reshape 改变数组维度(重新调整矩阵的行数、列数、维数。)

import numpy as np
e = np.arange(9)
print (e)
# [0 1 2 3 4 5 6 7 8]
e1 = e.reshape(3,3) #
print (e1)
#[[0 1 2]
# [3 4 5]
# [6 7 8]]

ravel函数完成展平

import numpy as np
f = np.arange(24).reshape(2,3,4)
print (f)
#[[[ 0 1 2 3]
# [ 4 5 6 7]
# [ 8 9 10 11]]
#
# [[12 13 14 15]
# [16 17 18 19]
# [20 21 22 23]]]
f1 = f.ravel()
print (f1)
#[ 0 1 2 ..., 21 22 23]

flatten 这个函数恰如其名,flatten就是展平的意思,与ravel函数的功能相同。不过,flatten函数会请求分配内存来保存结果,而ravel函数只是返回数组的一个视图(view)

f2 = f.flatten()
print (f2)
#[ 0 1 2 ..., 21 22 23]

shape,用元组设置维度

f.shape=(6,4)
print (f)
#[[ 0 1 2 3]
# [ 4 5 6 7]
# [ 8 9 10 11]
# [12 13 14 15]
# [16 17 18 19]
# [20 21 22 23]]

resize,resize和reshape函数的功能一样,但resize会直接修改所操作的数组:

f.resize((2,12))
print (f)
#[[ 0 1 2 ..., 9 10 11]
# [12 13 14 ..., 21 22 23]]

数组的组合

import numpy as np
a = np.arange(9).reshape(3,3)
print (a)
#[[0 1 2]
# [3 4 5]
# [6 7 8]]
b = 2 * a
print (b)
#[[ 0 2 4]
# [ 6 8 10]
# [12 14 16]]

# 1. 水平组合hstack函数

h = np.hstack((a,b))
print (h)
#[[ 0 1 2 0 2 4]
# [ 3 4 5 6 8 10]
# [ 6 7 8 12 14 16]]

# 2. 垂直组合vstack函数

v = np.vstack((a,b))
print (v)
#[[ 0 1 2]
# [ 3 4 5]
# [ 6 7 8]
# [ 0 2 4]
# [ 6 8 10]
# [12 14 16]]

# 3. 深度组合dstack函数(将一系列数组沿着纵轴(深度)方向进行层叠组合)

d = np.dstack((a,b))
print (d)
#[[[ 0 0]
# [ 1 2]
# [ 2 4]]
#
# [[ 3 6]
# [ 4 8]
# [ 5 10]]
#
# [[ 6 12]
# [ 7 14]
# [ 8 16]]]

# 4. 列组合,column_stack函数对于一维数组将按列方向进行组合,对于二维数组,column_stack与hstack的效果是相同

c = np.arange(5)
c1 = 2 * c
c2 = np.column_stack((c,c1))
print (c2)
#[[0 0]
# [1 2]
# [2 4]
# [3 6]
# [4 8]] l = np.column_stack((a,b))
print (l)
#[[ 0 1 2 0 2 4]
# [ 3 4 5 6 8 10]
# [ 6 7 8 12 14 16]]

# 行组合row_stack函数(对于两个一维数组,将直接层叠起来组合成一个二维数组,对于二维数组,row_stack与vstack的效果是相同的)

c = np.arange(5)
c1 = 2 * c
c3 = np.row_stack((c,c1))
print (c3)
#[[0 1 2 3 4]
# [0 2 4 6 8]] r = np.row_stack((a,b))
print (r)
#[[ 0 1 2]
# [ 3 4 5]
# [ 6 7 8]
# [ 0 2 4]
# [ 6 8 10]
# [12 14 16]]

# 分割数组

A = np.arange(9).reshape(3,3)
print (A)
#[[0 1 2]
# [3 4 5]
# [6 7 8]]

# 1. 水平分割 hsplit函数

H = np.hsplit(A,3)
print (H)
#[array([[0],
# [3],
# [6]]), array([[1],
# [4],
# [7]]), array([[2],
# [5],
# [8]])]

# 调用split函数并指定参数axis=1

H1 =np.split(A,3,axis=1)
print (H1)
#[array([[0],
# [3],
# [6]]), array([[1],
# [4],
# [7]]), array([[2],
# [5],
# [8]])]

# 2. 垂直分割,vsplit函数

V = np.vsplit(a,3)
print (V)
#[array([[0, 1, 2]]), array([[3, 4, 5]]), array([[6, 7, 8]])]

# 调用split函数并指定参数axis=0

V1 = np.split(A,3,axis=0)
print (V1)
#[array([[0, 1, 2]]), array([[3, 4, 5]]), array([[6, 7, 8]])]

# 3. 深度分割,dsplit函数

C = np.arange(27).reshape(3,3,3)
print (C)
#[[[ 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]]]
D = np.dsplit(C,3)
print (D)
#[array([[[ 0],
# [ 3],
# [ 6]],
#
# [[ 9],
# [12],
# [15]],
#
# [[18],
# [21],
# [24]]]), array([[[ 1],
# [ 4],
# [ 7]],
#
# [[10],
# [13],
# [16]],
#
# [[19],
# [22],
# [25]]]), array([[[ 2],
# [ 5],
# [ 8]],
#
# [[11],
# [14],
# [17]],
#
# [[20],
# [23],
# [26]]])]

# 数组的属性

num = np.arange(24).reshape(2,12)
print (num)
#[[ 0 1 2 ..., 9 10 11]
# [12 13 14 ..., 21 22 23]]

# 1. ndim属性,给出数组的维数,或数组轴的个数

print (num.ndim)
#2

# 2. size属性,给出数组元素的总个数

print (num.size)
#24

# 3. itemsize属性,给出数组中的元素在内存中所占的字节数

print (num.itemsize)
#4

# 4. nbytes属性,整个数组所占的存储空间(itemsize和size属性值的乘积)

print (num.nbytes)
#96

# 5. T属性,效果和transpose函数一样

# 数组的转换,tolist函数

Numpy 数据类型和基本操作的更多相关文章

  1. NumPy数据类型

    NumPy - 数据类型 NumPy 支持比 Python 更多种类的数值类型. 下表显示了 NumPy 中定义的不同标量数据类型. 序号 数据类型及描述 1. bool_存储为一个字节的布尔值(真或 ...

  2. numpy 数据类型与 Python 原生数据类型

    查看 numpy 数据类型和 Python 原生数据类型之间的对应关系: In [51]: dict([(d, type(np.zeros(1,d).tolist()[0])) for d in (n ...

  3. Redis数据类型的基本操作

    Redis数据类型的基本操作 一.string类型 1.设置value

  4. 2、NumPy 数据类型

    1.NumPy 数据类型 numpy 支持的数据类型比 Python 内置的类型要多很多,基本上可以和 C 语言的数据类型对应上,其中部分类型对应为 Python 内置的类型.下表列举了常用 NumP ...

  5. Lesson3——NumPy 数据类型

    NumPy 教程目录 NumPy 数据类型 numpy 支持的数据类型比 Python 内置的类型要多很多,基本上可以和 C 语言的数据类型对应上,其中部分类型对应为 Python 内置的类型. 下表 ...

  6. Redis 学习笔记-5种数据类型的基本操作

    1.string类型 基本操作列表: GET 获取指定键对应的值 SET 设定键值 DEL 删除指定键对应的值(对所有数据类型都有效) > set hello world OK > get ...

  7. Numpy 数据类型

    numpy支持的数据类型比Python内置的类型多很多,基本上可以和C语言的数据类型对应上, 其中部分类型对应为Python内置的类型.下表列举了常用的Numpy基本类型. 名称 描述 bool_ 布 ...

  8. MYSQL数据类型 表基本操作 表记录增删改 单表查询

    一.数据类型 常用的数据类型如下: 整数:int,bit 小数:decimal 字符串:varchar,char 日期时间: date, time, datetime 枚举类型(enum) 特别说明的 ...

  9. Numpy数据类型转化astype,dtype

    1. 查看数据类型 import numpy as np arr = np.array([1,2,3,4,5]) print(arr) [1 2 3 4 5] # dtype用来查看数据类型 arr. ...

随机推荐

  1. PXE:终于成功启动 fedora live 了!

    default menu.c32 timeout 1 label fedora29-live menu label fedora29-live from ftp kernel fedora29live ...

  2. nginx通过反向代理实现未备案域名访问详解

    本方法实现前提是8123端口(也可以是其他端口)面对互联网打开.server里面监听80端口,然后反向代理8123端口.1.其中server_name部分是我的域名可以替换成其他想要的域名2.8123 ...

  3. .net读取Excel转datatable、.net读取的Excel存在合并单元格并且转成datatable

    项目中经常会遇到Excel导入数据,Excel的模板会可能是存在合并单元格的,模板如下图所示 读取时需要填充合并单元格的值,转成datatable单元格值时,填充合并单元格的值,如下图所示: 合并单元 ...

  4. 关于Kafka producer管理TCP连接的讨论

    在Kafka中,TCP连接的管理交由底层的Selector类(org.apache.kafka.common.network)来维护.Selector类定义了很多数据结构,其中最核心的当属java.n ...

  5. python nose测试框架全面介绍十一---用例的发现

    nose是怎么发现用例的??网上一大把说函数以test开头的都会自动发现,真的是这样吗???还是自己来试验下吧 首先,我们还是来看看官方文档怎么说的吧: If it looks like a test ...

  6. a链接QQ客服 在小框口中打开 感觉不错

    <a href="javascript:;" onClick="javascript:window.open('http://wpa.qq.com/msgrd?v= ...

  7. css的position,float属性的理解

    我们知道,html是按照普通流来加载的,这个时候我们有些需求就不好实现.因此出现了非普通流: 1.普通流:按照顺序正常的排列,长度或不够就往下挤.position默认的static 2.非普通流:脱离 ...

  8. Flv视频格式如何转换成MP4格式

    如何将flv视频格式转换成MP4格式呢?随着现在视频格式的不断多样化,视频格式转换的问题也成了现在生活中常见的问题,那么我们应该怎样将flv视频格式转换成MP4格式呢?下面我们就一起来看一下吧. 操作 ...

  9. swp文件已存在

    vim编辑某个文件时,提示.xxx.sh.swp文件已存在是因为异常退出后,linux会生成一个swp文件,无论选择什么,下次进入还是会提示ll 命令无法看到文件使用 rm -rf .xxx.sh.s ...

  10. xcode工程编译错误之iOS解决CUICatalog: Invalid asset name supplied问题

    [问题分析]: 这个问题其实是老问题,产生原因就是因为在使用的时候 [UIImage imageNamed:]时,图片不存在或者传入的图片名为nil. [解决方法]: 添加一个系统断点,来判断如果图片 ...