NumPy笔记 (一)

NumPy 笔记

# NumPy 是 Python 语言的扩展库,支持大量的维度数组与矩阵运算,
# 此外也针对数组运算一共大量的数学函数库
# 包括:一个强大的 N 维对象 ndarray,广播功能函数,整合 C/C++ 代码的工具
# 线性代数、傅里叶变换、随机数生成等功能

'''
创建 ndarray
numpy.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0
    object   数组和嵌套的数列
    dtype    数组要还俗的数据类型,可选
    copy     对象是否需要复制,可选
    order    创建数组的形式,C 为行方向, F 为列方向, A 为任意发那个像(默认)
    subok    默认返回一个与基类类型一直的数组
    ndmin    指定生成数组的最小维度

'''

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

a = np.array([[1, 2], [3, 4]])
print(a)

# ndarray 对象由计算机内存的连续一堆部分组成,并结合索引模式,将每个元素映射到内存块中的一个
# 位置。内存块一顺序来保存元素
# numpy 支持的数据类型比 Python 内置的类型要多,基本可以和 C 语言的数据类型对应上
# bool_   int_  intc  intp  int8 ... int64 uint8 ... uint64
# float_ float16 ... float64  comples_  comples64  comples128

'''
数据类型对象 dtype
numpy.dtype(object, align, copy)
    object  要转换为的数据类型对象
    align   如果为 true 填充字段使其类似 C 的结构体
    copy    复制 dltype 对象,如果为 false,则是对内置数据类型对象的引用
'''

# 使用标量类型
dt = np.dtype(np.int32)
print(dt)

# Numpy 数组的维数称为秩 (rank),秩就是轴的数量,即数组的维度
# 在 NumPy 中,每一个线性的数组称为一个轴 (axis)
# axis = 0, 表示沿着第 0 轴进行操作,即对每一列进行操作

a = np.arange(24)
print(a.ndim)
b = a.reshape(2, 4, 3)
print(b.ndim)

# ndarry.itemsize 以字节的心事返回数组中每一个元素的大小

'''
创建数组
numpy.empty 方法用于创建一个指定形状,数据类型且未初始化的数组
numpy.empty(shape, dtype = float, order = 'C')
    order   中有 'C' 和 ’F‘ 两个选项,分别代表行优先和列优先,在计算机内存中的村塾元素的顺序
'''

x = np.empty([3, 2], dtype = int)
print(x)

'''
numpy.frombuffer 用于实现动态数组
numpy.frombuffer 接受 buffer 输入参数,以流的形式读入转换成 ndarray 对象。
numpy.frombuffer(buffer, dtype = float, count = -1, offset = 0)
    buffer  可以是任意对象,会以流的形式读入
    count   读取的数据数量,默认是 -1,读取所有数据
    offset  读取的起始位置,默认是 0
'''

s = b'Hello Wprld'
a = np.frombuffer(s, dtype = 'S1')
print(a)

'''
numpy.arange 函数创建数值范围并返回 ndarray 对象
numpy.arange(start, stop, step, dtype)
    start   起始值,默认是 0
    stop    终止值 (不包含)
    step    步长,默认为 1
    dtype   返回 ndarray 的数据类型,如果没有提供,则会使用输入数据的类型
'''

x = np.arange(5)
print(x)
x = np.arange(10, 20, 2)
print(x)
# numpy.linspace 用于创建一个一维数组,数组是一个等差数列构成的
a = np.linspace(1, 10, 10)
print(a)
a = np.linspace(1, 1, 10)
print(a)
# nunmpy.logsapce 用于创建一个等比数列

# numpy 对象内容可以通过索引或切片来访问和修改,与 Python 中的 list 操作一样
s = slice(2, 7, 2)
print(a[s])

# 广播规则
#   让所有输入数组都向其中形状最长的数组看齐,形状中不足的部分都通过在前面加 1 补齐
#   输出数组的形状是输入数组形状的各个维度上的最大值
#

# numpy.nditer 通过迭代方式访问 ndarray
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值