python 基础 —— numpy

1. array的创建及属性

# 定义
array = np.array([[1, 2, 3],
                  [2, 3, 4]])
print(array)
# 维度, shape, 元素个数
print("number of dim:", array.ndim)
print("shape:", array.shape)
print("size:", array.size)
print("------------------------")

# 类型int(32/64) float(32/64)
a = np.array([[2, 23, 4],
              [2, 32, 4]], dtype=np.int64)
print(a.dtype)

# 其它初始化的方式
a = np.zeros((3, 4), dtype=np.float)
b = np.ones((3, 4), int)
c = np.empty((3, 4))
d = np.arange(1, 10, 1)  #左闭右开区间
print(a, "----\n", b, "=====\n", c, ".....\n", d)
# 有序;改变shape
e = np.arange(12).reshape(3, 4)
# e = np.arange(12)
# e = e.reshape(3, 4)
print(e)
###

# 线段
a = np.linspace(1, 10, 6).reshape((2, 3))
print(a)

2. numpy基础运算1

# 元组逐个相+,-,*,/
a = np.array([10, 20, 30, 40])
b = np.arange(1, 5)
print(a, b)
c = a / b
print(c)
# 次方的表示形式
c = b**3
print(c)
# 三角函数的运算
c = 10*np.cos(a)
print(c)
# 比较大小 < > ==
print(b)
print(b==3)
# 矩阵运算
a = np.array([[1, 1],
              [0, 1]])
b = b.reshape(2, 2)
print(a,"\n", b)
c = np.matmul(a, b)
print(c)
c = np.dot(a, b)
print(c)
c = a.dot(b)
print(c)

# 随机初始化
a = np.random.random((2, 4))
print(a)
# 轴相关
print(np.sum(a))
print(np.sum(a, axis=0)) # 列
print(np.min(a, axis=1)) # 行
print(np.max(a, axis=0)) # 列
print(np.max(a, axis=1)) # 行

3. numpy基础运算2

A = np.arange(14, 2, -1).reshape(3, 4)
print(A)

# 任何一种运算都可以指定是对行或者列
print(np.argmax(A))
print(np.argmin(A, axis=0)) # 列
print(np.argmax(A, axis=1)) # 行
# 均值
print(np.mean(A))
print(np.mean(A, axis=1))
print(A.mean())
print(np.average(A))
# 中位数
print(np.median(A))
# cumsum 第 i 个值表示前i个值之和
print(np.cumsum(A))
# (i, j)表示(i, j)和(i, j+1)的差值
print(np.diff(A))
# 找非零的数,输出两个array,分别表示非零数的行坐标和列坐标
print(np.nonzero(A))
# 排序 行中升序排序
print(np.sort(A))
print(A)
print(np.transpose(A))
print(A.T)
print((A.T).dot(A))
# 使数组中小于5的数变成5,大于9的数字变成9
print(np.clip(A, 5, 9))

4. numpy的索引

A = np.arange(3, 15).reshape(3, 4)
print(A)
# 输出索引为2的元素或索引为2的整行元素
print(A[2])
print(A[2, 1])
print(A[2][1])
print(A[2, :])
print(A[:, 1])
print(A[1, 1:3])

for row in A:
    print(row)

for col in A.T:
    print(col)

print(A)
print(A.flatten())

for item in A.flat:
    print(item)
``
# 5. numpy的array合并
  ```python
  A = np.array([1, 1, 1])
B = np.array([2, 2, 2])
# 上下合并 vertical stack
C = np.vstack((A, B))
print(A.shape, B.shape, C.shape)
# 左右合并 horizontal stack
D = np.hstack((A, B))
print(D)
print(D.shape)

# 转置对序列不起作用
print(A.T)

# 在行或列上添加了一个维度
A = A[:, np.newaxis]
B = B[:, np.newaxis]
# 指定维度合并
C = np.concatenate((A, B, A, A), axis=1) # 1是左右  0是上下
print(C)

5. numpy分割

A = np.arange(12).reshape((3, 4))
print(A)

# spilt只能进行每块相等的分割
B, C = np.split(A, 2, axis=1) # 列
print(B)
print(C)

B, C, D = np.split(A, 3, axis=0) # 行
print(B)
print(C)
print(D)

# 不等量的分割
B, C, D = np.array_split(A, 3, axis=1)
print(B)
print(C)
print(D)

print(np.vsplit(A, 3))
print(np.hsplit(A, 2))

6. numpy 的 copy & deep copy

a = np.arange(4)
print(a)
# 赋值之后,b就是a
b = a
c = a
d = b
a[0] = 33
print(a)
print(b)
print(c)
print(d)

print(d is a) # True
d[1:3] = [22, 33]
print(d)
print(a)

# 只赋值不关联 deep copy
b = a.copy()
print(a)
print(b)
a[2:3] = [100]
print(a)
print(b)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值