numpy 几种属性
- ndim: 维度
- shape: 行数和列数
- size: 元素个数
打印 numpy 的几种属性
print('number of dim:',array.ndim) # 维度
# number of dim: 2
print('shape :',array.shape) # 行数和列数
# shape : (2, 3)
print('size:',array.size) # 元素个数
# size: 6
numpy 创建 array
- array:创建数组
- dtype:指定数据类型
- zeros:创建数据全为0
- ones:创建数据全为1
- empty:创建数据接近0
- arrange:按指定范围创建数据
- linspace:创建线段
创建数组
a = np.array([2, 23, 4]) # 一维数组
print(a)
# [2 23 4]
创建全 1 数组
a = np.ones((3, 4), dtype = np.int) # 创建 3 行 4 列的全 1 数组,数据类型为 int 型
array([[1, 1, 1, 1],
[1, 1, 1, 1],
[1, 1, 1, 1]])
使用 reshape 改变数据形状
a = np.arange(12).reshape((3, 4))
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]])
numpy 的几种基本运算
c = a+b
c = a*b # 对应元素相乘
c = b**2 # b 的二次方
c = 10*np.sin(a) # 调用 numpy 中的 sin 函数
print(b<3) # 进行逻辑判断,返回 bool 类型数据
c_dot = np.dot(a, b) # 矩阵乘法
索引
import numpy as np
A = np.arange(3,15)
# array([3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14])
print(A[3])
# 6
A = np.arange(3,15).reshape((3,4))
array([[ 3, 4, 5, 6]
[ 7, 8, 9, 10]
[11, 12, 13, 14]])
print(A[2])
# [11 12 13 14]
print(A[1, 1:3]) # [8 9] # 切片处理
for row in A:
print(row) # 使用 for 函数进行打印
[ 3, 4, 5, 6]
[ 7, 8, 9, 10]
[11, 12, 13, 14]
array 上下合并 np.vstack()
import numpy as np
A = np.array([1,1,1])
B = np.array([2,2,2])
print(np.vstack((A,B))) # vertical stack
[[1,1,1]
[2,2,2]]
C = np.vstack((A,B))
print(A.shape,C.shape) # 合并后的 array 属性
# (3,) (2,3)
array 左右合并 np.hstack()
D = np.hstack((A,B)) # horizontal stack
print(D)
# [1,1,1,2,2,2]
print(A.shape,D.shape)
# (3,) (6,)
array 多个矩阵或序列合并时 concatenate函数
C = np.concatenate((A,B,B,A),axis=0)
print(C)
"""
array([[1],
[1],
[1],
[2],
[2],
[2],
[2],
[2],
[2],
[1],
[1],
[1]])
"""
D = np.concatenate((A,B,B,A),axis=1)
print(D)
"""
array([[1, 2, 2, 1],
[1, 2, 2, 1],
[1, 2, 2, 1]])
"""
print(help()) # 打印帮助文档
print(X.shape) # 查看 X 的数据格式(多少行多少列)
axis参数很好的控制了矩阵的纵向或是横向打印,相比较vstack和hstack函数显得更加方便。
numpy读取文本读出来的是数组的形式