numpy基本使用

定义数组

# 普通数组声明方式
arr1 = np.array([1, 2, 3])
print("arr1:", arr1)

# 多于一个维度
arr2 = np.array([[1, 2], [2, 4], [3, 5]])
print("arr2:", arr2)

# 最小维度
arr3 = np.array([1, 2, 3, 4, 5], ndmin=3)
print("arr3", arr3)  # arr3 [[[1 2 3 4 5]]]

# dtype 参数
arr4 = np.array([1, 2, 3], dtype='float32')
print("arr4", arr4)

# 使用标量类型
dt1 = np.dtype(np.int32)
print("dt1", dt1)

# int8, int16, int32, int64 四种数据类型可以使用字符串 'i1', 'i2','i4','i8' 代替
dt2 = np.dtype('i1')
print("dt2", dt2)

# 字节顺序标注
dt3 = np.dtype('<i8')
print("dt3", dt3)

# 定义结构化的数据类型
student = np.dtype([('stuId', 'i1'), ('stuName', 'U20'), ('age', 'i1')])
print('student', student)

stuarr = np.array([(1, "肖迷笛", 20), (2, "吾爱人", 22)], dtype=student)
print("stuarr", stuarr)

# 查看array的属性
a = np.array([[[1, 2], [1, 4]], [[1, 3], [1, 0]], [[1, 2], [1, 4]]], dtype=np.int)
print('a ndim', a.ndim)
print('a shape', a.shape)
b = a.reshape(2, 6)
# 所谓reshape就是将数组扁平化后,重新划分对对应的维度去
# 每个维度的数量相乘要与原来乘积相同
print(b, b.dtype, b.size, type(b))

相关基础

# 零填充数组 默认的是float64类型的
zero = np.zeros((3, 4), dtype=np.int)
print(zero)
# 创建1填充矩阵
a = np.ones((2, 3), dtype=int)
print("填充1的数组", a)

# arange 左闭右开区间 [x,y,step] 从x开始到小于y且步长为step的数组
range = np.arange(10, 100, 5)
print('range', range)
# 浮点arange
rangeF = np.arange(0, 10, 2.5)
print('rangeF', rangeF)
# 使用linspace获得相应元素数量的函数
linspace = np.linspace(0, 2, 9)
print(linspace)

# 使用pi
from numpy import pi

x = np.linspace(0, 2 * pi, 10)
print(x)
f = np.sin(x)
print(f)

# 使用numpy数组生成10000个元素,并且reshape成100*100的矩阵
arr = np.arange(10000)
arrReshape = arr.reshape(100, 100)

强制打印整个数组,不进行省略

# 强制打印整个数组,而不省略
import sys
np.set_printoptions(threshold=sys.maxsize)
print(arrReshape)

基本操作

a = np.array([20, 30, 40, 50])
b = np.arange(4)
# 矩阵加减
print(b, a + b, a - b)
# 对矩阵进行数乘运算,或者其他操作
print(10 * a, b ** 2, 10 * np.sin(a))
# 对矩阵进行比较运算
print(a < 32)  # 返回 [True True False False]
# 矩阵相乘
A = np.array([[1, 1], [0, 1]])
B = np.array([[2, 0], [3, 4]])
# 按元素想乘
print(A * B)
# 矩阵相乘
# A矩阵的每一行分别与B矩阵的每一列对应相乘求和
print(A @ B)
print(A.dot(B))

# 某些操作(例如+=和 *=)会更直接更改被操作的矩阵数组而不会创建新矩阵数组。
# ...

# 计算数组中所有元素的总和,最小值,最大值
a = np.random.random((2, 3))
print(a.sum(), a.min(), a.max(), a)

# 指定axis参数 axis=0代表每一列, axis=1代表每一行
b = np.arange(12).reshape(3, 4)
print(b, "axis", b.sum(axis=0))
print(b.max(axis=1))  # 每行的最大值
print(b.min(axis=0))  # 每列的最小值
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值