欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

python高级语法-你了解numpy吗(numpy进阶)

程序员文章站 2022-05-28 19:38:46
...

创建数组等基础操作见:https://blog.csdn.net/zhouchen1998/article/details/82145688

1.索引和切片

基本切片:可以使用slice对象切片,也可以像python内置类型一样。

import numpy as np
a = np.arange(10)
print(a)
s = slice(2, 7, 2)
print(a[s])
print(a[2:7:2])

基本索引:类似list,注意可以使用...表示维度数

a[1,...]  

如上,表示第二行元素。 

高级索引:用数组或者布尔值来访问数组的方式。

a = np.array([[1, 2, 3], [4, 5, 6]])
b = a[[0, 1, 2], [0, 1, 0]]
# 获得上面组合的下标:(0,0),(1,1),(2,0)
a[a>10]

2. 广播

指的是NumPy 在算术运算期间处理不同形状的数组的能力。(也就是做出数学上本不能有结果的数值,例如不匹配的行和列)

这里比较复杂,不多赘述,如果是数据分析或者机器学习方面的可以继续深入研究。

3.迭代

利用numpy.nditer()

import numpy as np
a = np.arange(0, 60, 5)
a = a.reshape(3, 4)
print('原始数组是:')
print(a)
print('\n')
print('修改后的数组是:')
for x in np.nditer(a):
    print(x, end=" ")

4.数组操作

数组操作

-形状修改

reshape 不改变数据的条件下修改形状

flat 数组上的一维迭代器

flatten 返回折叠为一维的数组副本

ravel 返回连续的展开数组

-翻转操作

transpose 翻转数组的维度

ndarray.T 和self.transpose()相同

rollaxis 向后滚动指定的轴

swapaxes 互换数组的两个轴

-维度修改

broadcast 产生模仿广播的对象

broadcast_to 将数组广播到新形状

expand_dims 扩展数组的形状

squeeze 从数组的形状中删除单维条目

-数组连接

concatenate 沿着现存的轴连接数据序列

stack 沿着新轴连接数组序列

hstack 水平堆叠序列中的数组(列方向)

vstack 竖直堆叠序列中的数组(行方向)

-数组分割

split 将一个数组分割为多个子数组

hsplit 将一个数组水平分割为多个子数组(按列)

vsplit 将一个数组竖直分割为多个子数组(按行)

-元素增删

resize 返回指定形状的新数组

append 将值添加到数组末尾

insert 沿指定轴将值插入到指定下标之前

delete 返回删掉某个轴的子数组的新数组

unique 寻找数组内的唯一元素

5.矩阵库

numpy.matlib

对于矩阵提供了很多方便操作

6.matplotlib

著名的绘图库。配合numpy有很强大的数学分析能力。

import numpy as np
from matplotlib import pyplot as plt

x = np.arange(1,11)
y = 2 ** x - 10
plt.title("demo")
plt.xlabel("x ")
plt.ylabel("y ")
plt.plot(x, y)
plt.show()

python高级语法-你了解numpy吗(numpy进阶)

7.ndarray的IO能力

可以磁盘存储为npy文件。

相关标签: numpy

上一篇: Numpy基础

下一篇: Numpy入门