numpy 形状

import numpy as np
from numpy import *

a = arange(6)
# shape属性:改变自身形状。-1自适应
print(a)
a.shape = 2, -1
print(a)
# reshape方法: 返回一个指定形状的数组,不改变自身
display = a.reshape(3, -1)
print(a)
print(display)

# 使用newaxis增加维度
a = arange(3)
print(shape(a))
print(a)
y = a[newaxis, :]  # 在外面包一维
print(shape(y))
print(y)
# 外面包两层,里面包一层
y = a[newaxis, newaxis, :, newaxis]
print(y.shape)
print(y)
# 用squeeze去除长度为1的维度
display = y.squeeze()
print(display)
print(display.shape)

# 改变维度,让所有维度反过来
# 对于二维数组,相当于交换行和列,返回的数组相当于原来的view
# 改变值,原数组也变
a = arange(6)
a.shape = 2, -1
print(a)
display = a.transpose()
print(display)

# 数组拼接
x = array([
    [0, 1, 2],
    [10, 11, 12]
])
y = array([
    [0, 1, 2],
    [10, 11, 12]
])
z = concatenate((x, y))
print(z)
# 默认沿着第一维度拼接
z = concatenate((x, y), axis=0)
print(z)
z = concatenate((x, y), axis=1)
print(z)
# concatenate 不支持最高维度拼接 但是可以用以下方式
z = array((x, y))
print(z)

# 把多为数组变成一维数组
# 1. Flatten方法 返回的是复制
b = x.flatten()
print(b)
# 2. flat属性 返回原来的view
b = x.flat  # b是迭代器,修改b的值会改变a的值
print(b[0])
b[0] = 1
print(b)
# 3.ravel方法
display = x.ravel()
print(display)
# 修改display的值会该改变x的值
# 这种情况不会改变原值
b = x.transpose()
display = b.ravel()
print(b)
display[0] = 2
print(b)
# 保证数据至少有x维度 x = 1, 2,3
a = arange(10)
print(a)
b = atleast_1d(a)
print(b)
c = atleast_2d(a)
print(c)
d = atleast_3d(a)
print(d)

猜你喜欢

转载自blog.csdn.net/SpringQAQ/article/details/81269446