numpy的基础

NumPy是在Python中进行科学计算的基础包。它提供多维数组(矩阵)对象各种各样的函数操作。在数组上的快速操作,包括数学、逻辑、转换、排序、选择、方差、期望、离散傅里叶变换转换等等,我们在科学计算中常用的基本的线性代数,基本的统计运算,随机模拟等等都在numpy得到支持,可见numpy是多么的强大。

我第一次接触numpy时是由于需要将matlab训练完成的模型落地,发布到ubuntu服务器上,需要将matlab的源码转为python去编写,这时学习numpy的开始。

1、数据类型

类型 描述
bool_Boolean (True or False) stored as a byte
int_ 默认的整数类型 (和C语言的long型相同; 通常是int32或者int64)
intc 和C语言的int类型一致
intp整数用于索引 (类似 C ssize_t; 通常是int32或者int64)
int8Byte (-128 to 127)
int16 整型 (-32768 to 32767)
int32整型(-2147483648 to 2147483647)
int64整型(-9223372036854775808 to 9223372036854775807)
uint8 无符号 整型 (0 to 255)
uint16无符号 整型 (0 to 65535)
uint32无符号 整型 (0 to 4294967295)
uint64无符号 整型 (0 to 18446744073709551615)
float_Shorthand for float64.
float16半精度浮点数:符号位,5位指数,10位的尾数
float32 单精度浮点数:符号位,8位指数,23位的尾数
float64 双精度浮点数:符号位,11位指数,52位的尾数
complex_complex128简写
complex64用两个32位的浮点数表示的复数
complex128用两个64位的浮点数表示的复数

2、矩阵操作

# -*- coding: utf-8 -*-
"""
Created on Mon Jul 16 18:13:11 2018

@author: linxiaojie
"""

import numpy as np

#创建长度为6的,元素都是0一维数组array([0, 1, 2, 3, 4, 5])
range_array = np.arange(6)
print(range_array)

# 随机生0-14成续的3*4的矩阵
a = np.arange(12).reshape(3,4)
print(a)

# 生成大小为1-10的线性等分向量,注意num默认为50
line_space = np.linspace(1,10)
print(line_space)

# 生成大小为1-10的对数等分向量,注意num默认为50
log_space = np.logspace(1,10)
print(log_space)

# 生成单位矩阵
eye = np.eye(3,3)
print(eye)

# 生成2*4全1矩阵
b = np.ones((3,4), np.int64)
print(b)

# 生成4*5全0矩阵
c = np.zeros((3, 4))
print(c)

# 矩阵横向合并
d = np.hstack((b,c))
print(d)

# 矩阵纵向合并
e = np.vstack((b,c))
print(d)

# 从指定的矩阵中提取出相应的行和列,生成新的矩阵, 上面的e是6*4矩阵,提取第2行到第4行中的第3列到第四列,即得到一个3*2的矩阵
f = e[1:4, 2:4]
print(f)

# 获取矩阵的行列,返回的是一个元组
array_shape = np.shape(f)
print(array_shape)

#创建3行2列,未初始化的二维数组
empty_array = np.empty((2,3)) 

# 两个矩阵数值求和,减法类同
g = a + b
print(g)

# 两个同型矩阵数值相乘
j = a * b
print(j)

# 矩阵中所有元素乘以某系数
k = 3 * j
print(k)

# 两个矩阵相乘
tmp = np.floor(10*np.random.rand(4,3))
h = np.dot(g, tmp)
print(h)

# 删除矩阵的第2和第3行
i = np.delete(a,(1,2),0)#删除a的第二,三行
print(i)

在我们日常使用中当然不仅仅上面这些操作,例如使用where去查找、使用vsplit去切分、三角函数求值、求方差及期望等等,后面有机会再详述。

3、I/O操作

# -*- coding: utf-8 -*-
"""
Created on Wed Jul 18 15:33:48 2018

@author: linxiaojie
"""

import numpy as np
from io import BytesIO

# 从数据串中读取,参数还有很多种,根据实实际需求从官方文档获取相应的帮助
data = "1, 2, 3\n4, 5, 6"
np.genfromtxt(BytesIO(data.encode()), delimiter=",")

# 从文件中读取
data = numpy.genfromtxt("data.txt", delimiter=",")
print(type(data))

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值