文章目录
前言
本文主要介绍numpy中的索引切片以及如何合并
一、索引
1.导入库&定义一维数组
import numpy as np
A = np.arange(3, 15)
print(A)
结果显示:
2.一维数组索引
print(A[2]) # 第二个元素值
结果显示:
3.变更为多维进行索引
B = A.reshape(3,4) # 变为三行四列数
print(B)
结果显示:
print(B[2]) # 第二行元素组成的列表 切片操作
print(B[2, :])
print(B[1, 1:2]) # 第一行第一列元素成的列表
print(B[1][1]) # 第一行第一列值
print(B[1, 1])
结果显示:
4.迭代打印
1)
for row in B: # 迭代生成B的行
print(row)
结果显示:
2)
for col in B.T: # 迭代生成A的列,进行转置
print(col)
结果显示:
3)
print(A.flatten()) # 使用flatten将A转成一维的数组
for item in A.flat: # flat是一个迭代器,本身是一个object属性
print(item)
结果显示:
二、合并
1.导入库&定义数组
import numpy as np
A = np.array([1,1,1])
B = np.array([2,2,2])
2.vstack()上下(垂直)&hstack()左右(水平)合并
C = np.vstack((A, B)) # 垂直(上下)合并
D = np.hstack((A, B)) # 水平(左右)合并
print(C)
print(A.shape , C.shape) # A是序列或者向量 C是两行三列的矩阵
print(D)
print(A.shape, D.shape) # D为序列或向量
结果显示:
3.数组转置为矩阵
1)
print(A.T)
print(A.T.shape)
print("")
print(A.reshape(3,1))
print(A[np.newaxis, :]) # 在行方向增加维度
print(A[:, np.newaxis]) # 在列方向增加维度
结果显示:
2)
A = np.array([1, 1, 1])[:, np.newaxis]
B = np.array([2, 2, 2])[np.newaxis, :]
print(A)
print("")
print(B)
结果显示:
4.concatenate()合并
1)
C = np.concatenate((A, B, B, A), axis=0) # 纵向合并
print(C)
结果显示:
2)
C = np.concatenate((A, B), axis=1)
print(C)
结果显示:
下一节为分割和拷贝