python基础库之Numpy
程序员文章站
2022-06-01 12:56:53
...
运行环境:win10 64位 py 3.6 pycharm 2018.1.1
#!/usr/bin/python
# -*- coding:utf-8 -*-
import numpy as np
# 一维数组
a = np.arange(100)
print(a)
print(a.dtype)
print(a.shape)
# 多维数组
m = np.array([np.arange(5), np.arange(5)])
print(m)
print(m.shape)
# 选择numpy数组元素
a = np.array([[1,2],[3,4]])
print(a)
print(a[1,1])
# 一维数组切片
a = np.arange(9)
print(a[3:7])
# 设置步长
print(a[:7:2])
# 用负数来实现数值反转
print(a[::-1])
# 通过reshape()调整数组的形状
b = np.arange(24).reshape(2,3,4)
print(b)
# 拆解,可以用ravel()将多维数组变成一维数组
print(b.ravel())
# 拉直(Flatten),功能与ravel(),flatten()返回的是真实数组,需要分配新的结果的内存
print(b.flatten())
# 除reshape()函数外,还可以用元组来轻松定义数组来定义数组的形状
b.shape=(6,4)
print(b)
# 矩阵的转置
print(b.transpose())
# 调整大小,函数resize()的作用类似于reshape(),但是会改变作用类似于reshape()
b.resize((2,12))
print(b)
# 堆叠数组
# 数组既可以横向放置,也可以坚向放置。可以使用vstack(),dstack(),hstack(),column_stack(),row_stack(),concatenate()
a = np.arange(9).reshape(3,3)
print(a)
b = a * 2
print(b)
# 水平叠加,用无组确定ndarrays数组的形状,然后交给hstack()函数来码放这些数组
print(np.hstack((a,b)))
# 用concatenate()函数也可以达到同样的效果,c,行
print(np.concatenate((a,b),axis=1))
# 垂直叠加
print(np.vstack((a,b)))
# axis=0,用concatenate()函数也可以达到同样的效果
print(np.concatenate((a,b),axis=0))
# 深度叠加,沿着第三个坐标轴
print(np.dstack((a,b)))
# 列式堆叠: column_stack()函数对一维数组进行堆叠
oned = np.arange(2)
twiced = np.arange(2) * 2
print(np.column_stack((oned,twiced)))
# 用这种方法堆叠二维数组时,过程类似于hstack()
print(np.column_stack((a,b)))
print(np.column_stack((a,b)) == np.hstack((a,b)))
# 行式堆叠
print(np.row_stack((oned,twiced)))
# 对于二维数组,row_stack()函数相当于vstack()
print(np.row_stack((oned,twiced)) == np.vstack((oned,twiced)))
# 拆分numpy数组
a = np.arange(9).reshape(3,3)
# 按照列的方向进行拆分
print(np.hsplit(a,3))
# 另外一种方式按照列拆分
print(np.split(a,3,axis=1))
# 按照行的方向进行拆分
print(np.vsplit(a,3))
# axis = 0,split()函数也会沿着纵方向分解数组
print(np.split(a,3,axis=0))
# 纵向拆分
c = np.arange(27).reshape(3,3,3)
print(np.dsplit(c,3))
# Numpy数组的属性
b = np.arange(24).reshape(2,12)
print(b.ndim) #维度
print(b.size) #元素的数量
print(b.itemsize) #每个元素的字节数
print(b.nbytes) #存储整个数组的字节数
# T属性的作用与transpose()函数作用相同
b = b.reshape(6, 4)
print(b)
print(b.T)
# 如果数组的秩(rank)小于2,那么所得只是一个数组的视图
b = np.arange(4)
print(b.ndim)
print(b.T)
# flat属性可以返回一个numpy.flatiter对象。这是获取flatiter对象的唯一方法,我们无法访问flatiter的构造函数。
# 我们使用flat的迭代器来遍历数组
b = np.arange(4)
f = b.flat
print(f)
for item in f:print(item)
# 也可以取得flatiter对象
print(b.flat[2])
print(b.flat[[1, 3]])
# 也可以给flat属性赋值,这个值将会覆盖整个数组内所有的值
b.flat = 7
print(b)
# 可以修改指定元素
b.flat[[1,3]] = 1
print(b)
下一篇: Java 统一返回结果集封装