一、基本属性
二、 创建数组
(一)arange
a = np.arange(10,20,2)
# [10,12,14,16,18]
只有一个参数n的话,默认是从0到n-1的一维数组。
(二)自定义reshape
a = np.arange(12).reshape((3,4))
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
(三)linspace
a = np.linspace(1,10,5) # 从1开始到10结束,5段,类似于生成等差数列
# [ 1. 3.25 5.5 7.75 10. ]
三、基础运算
(一)三角函数
a = np.array([10,20,30,40])
c=np.sin(a)
print(a,c)
# [10 20 30 40] [-0.54402111 0.91294525 -0.98803162 0.74511316]
(二)判断大小
a = np.array([10, 20, 30, 40])
print(a < 21)
# [ True True False False]
(三)乘法
import numpy as np
a = np.array([[1, 1],
[0, 1]])
b = np.arange(4).reshape((2, 2))
c = a * b
c_dot = np.dot(a, b)
print(c) # 逐个相乘
print(c_dot) # 矩阵乘法
[[0 1]
[0 3]]
[[2 4]
[2 3]]
(四)求特殊值
a = np.array([[0, 1, 2, 3], [3, 2, 9, 1]])
print(np.sum(a))
print(np.sum(a, axis=0)) # 每一列求和
print(np.sum(a, axis=1)) # 每一行求和
21
[ 3 3 11 4]
[ 6 15]
min和max同理。
(五)特殊索引
a = np.arange(2, 14).reshape((3, 4))
print(a)
print(np.argmin(a)) # 最小值索引
print(np.argmax(a)) # 最大值索引
[[ 2 3 4 5]
[ 6 7 8 9]
[10 11 12 13]]
0
11
(六)特殊值
a = np.arange(2, 14).reshape((3, 4))
print(a)
print(np.mean(a)) # 平均值
print(a.mean()) # 平均值
print(np.median(a)) # 中位数
print(np.cumsum(a)) # 累加过程 [ 2 5 9 14 20 27 35 44 54 65 77 90]
(七)非0值
a = np.arange(2, 14).reshape((3, 4))
print(np.nonzero(a))
# (array([0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2]), array([0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3]))
输出的是所有非0值的索引。
(八)逐行排序
a = np.arange(14, 2, -1).reshape((3, 4)) # 注意步长是-1
print(a)
print(np.sort(a)) # 逐行排序
[[14 13 12 11]
[10 9 8 7]
[ 6 5 4 3]]
[[11 12 13 14]
[ 7 8 9 10]
[ 3 4 5 6]]
(九)flat和flatten
四、合并与分割
只能进行等项分割:
若进行不等分割:
五、其他
(一)加载文件loadtxt
data = np.loadtxt('ex1data1.txt', delimiter=',')
# 文件名:ex1data1.txt,分隔符:,
- 作用:用于从文本文件加载数据
- 返回值:二维numpy数组
- 默认情况下,它会自动推断数据类型