Numpy 学习

# -*- coding: utf-8 -*-
"""
Created on Tue Nov 19 10:35:33 2019

"""

import numpy as np


"""1.创建数组和数组的属性
a = np.arange(4)              # array([0, 1, 2, 3])
a = np.zeros((3,4)) # 数据全为0,3行4列
a = np.ones((3,4),dtype = np.int)   # 数据为1,3行4列
a = np.empty((3,4)) # 数据为empty,3行4列(其实每个值都是接近于零的数)
a = np.arange(10,20,2) # 10-19 的数据,2步长
a = np.arange(12).reshape((3,4))    # 3行4列,0到11
a = np.linspace(1,10,20)    # 开始端1,结束端10,且分割成20个数据,生成线段
a = np.linspace(1,10,20).reshape((5,4)) # 更改shape

array = np.array([[1, 2, 3], [2, 3, 4]])  # 2d 矩阵 2行3列
print(array)
print('number of dim:', array.ndim)  # 维度
print('shape :', array.shape)    # 行数和列数
print('size:', array.size)   # 元素个数
"""

"""2.创建数组的元素类型
dtype=np.int32 		int 32
dtype=np.int 		int 64
dtype=np.float32  	float32
dtype=np.float  	float64

array = np.array([1, 2, 3], dtype=np.int)
print(array.dtype)
"""

"""3.一维数组的运算
a = np.array([10, 20, 30, 40])
b = np.arange(4)
print(a)
print(b)  # [0 1 2 3]
print(a - b)  # [10 19 28 37]
print(a + b)  # [10 21 32 43]
print(a * b)  # [  0  20  60 120]
print(b**2)  # [0 1 4 9]
print(10 * np.sin(a))  # [-5.44021111  9.12945251 -9.88031624  7.4511316 ]
print(b < 3)  # [ True  True  True False]
"""

"""二维数组的运算和查找操作
https://www.cnblogs.com/Shawnyi/p/10370815.html

a = np.array([[1, 1], [0, 1]])
b = np.arange(4).reshape((2, 2))
print(a)
# [[1 1]
# [0 1]]
print(b)
# [[0 1]
# [2 3]]
print(np.dot(a, b))
print(a.dot(b))  # 同上


c = np.random.random((2, 4))  # 随机创建0-1的数值,2行4列
print(c)
print(np.sum(c))   # 4.4043622002745959
print(np.min(c))   # 0.23651223533671784
print(np.max(c))  # 0.90438450240606416
print("sum =", np.sum(c, axis=1))  # 1以行作为查找单元
print("min =", np.min(a, axis=0))  # 0以列作为查找单元
print("max =", np.max(a, axis=1))


A = np.arange(2, 14).reshape((3, 4))
print(np.argmin(A))    # 最小值即2,对应索引0
print(np.argmax(A))    # 最大值为13,对应索引为11
print(np.mean(A))        # 7.5(将整个矩阵的均值求出来)
print(np.average(A))     # 7.5 同上
print(np.median(A))       # 7.5 中位数
print(np.cumsum(A))  # 累加[ 2  5  9 14 20 27 35 44 54 65 77 90]
print(np.diff(A))   # 累差运算
print(np.nonzero(A))   


A = np.arange(14, 2, -1).reshape((3, 4))
print(A)
print(np.sort(A)) # 每行数据默认排序
print(np.transpose(A))   # 矩阵的转置(把每一行的数据变成列)
print(A.T)  # 同上
print(np.clip(A, 5, 9))  # 小于5的值换成5,大于9的值换成9
"""

"""一,二维索引,排序
A = np.arange(3, 15)
print(A[3])  # 6
A = np.arange(3, 15).reshape((3, 4))
print(A[1])  # [ 7  8  9 10]
print(A[1][1])  # 8
print(A[1, 1])  # 同上
print(A[1, 1:3])  # [8 9]

for row in A:
print(row)
# [3 4 5 6]
# [ 7  8  9 10]
# [11 12 13 14]

for row in A.T:
print(row)
# [ 3  7 11]
# [ 4  8 12]
# [ 5  9 13]
# [ 6 10 14]

print(A.flatten())  # 将多维的矩阵进行展开成1行的数列
for item in A.flat:  # 而flat是一个迭代器
    print(item, end=' ')
"""

"""矩阵合并
A = np.array([1, 1, 1])[:, np.newaxis]  # 一维变成二维数组
B = np.array([2, 2, 2])[:, np.newaxis]  # 一维变成二维数组

C = np.vstack((A, B))   # 转换垂直矩阵
D = np.hstack((A, B))   # 转换水平矩阵
print(C)
print(D)
print(A.shape, D.shape)

C = np.concatenate((A, B, B, A), axis=0)  # 0以列作为查找单元
print(C)
D = np.concatenate((A, B, B, A), axis=1)  # 1以行作为查找单元
print(D)
print(A.shape, D.shape)
"""

"""矩阵分割
A = np.arange(12).reshape((3, 4))
print(A)
# [[ 0  1  2  3]
# [ 4  5  6  7]
# [ 8  9 10 11]]

print(np.split(A, 2, axis=1))  # 纵向分割
print(np.hsplit(A, 2))  # 同上
# [array([[0, 1],
# [4, 5],
# [8, 9]]),
# array([[ 2,  3],
# [ 6,  7],
# [10, 11]])
# ]
print(np.split(A, 3, axis=0))  # 横向分割
print(np.vsplit(A, 3))  # 同上
# [
# array([[0, 1, 2, 3]]),
# array([[4, 5, 6, 7]]),
# array([[ 8,  9, 10, 11]])
# ]

print(np.array_split(A, 3, axis=1))  # 纵向不等量的分割
# [
#     array([[0, 1], [4, 5], [8, 9]]),
#     array([[2], [6], [10]]),
#     array([[3], [7], [11]])
# ]
"""


"""拷贝
a = np.arange(4)  # array([0, 1, 2, 3])


b = a
c = a
d = b

print(b is a)  # True
print(c is a)  # True
print(d is a)  # True

a[0] = 11
print(a)  # array([11,  1,  2,  3])

d[1:3] = [22, 33]
print(a)            # array([11, 22, 33,  3])
print(b)            # array([11, 22, 33,  3])
print(c)            # array([11, 22, 33,  3])

b = a.copy()    # deep copy
print(b)        # array([11, 22, 33,  3])
a[3] = 44
print(a)        # array([11, 22, 33, 44])
print(b)        # array([11, 22, 33,  3])此时a与b已经没有关联
"""
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值