目录
一、numpy属性
1.ndarray(就是array)是一个多维数组对象
2.array可以由非同质对象构成
二、numpy数组的创建
1.从列表创建
2.从元组创建
3.从列表和元组创建
4.创建顺序列表
5.创建全1、全0、全n矩阵
6.根据a的形状创建全n数组
7.创建对角线矩阵
8.合并数组
9.等距填充数组
10.拷贝数组
三、数组的维度变换
1.返回一个n形状的数组,原数组不变
2.返回一个n形状的数组,修改原数组
3.调换数组n个维度中的两个维度
4.对数组降维,返回折叠后的一维数组,原数组不变
5.数组转化为列表
四、数组的操作
1.一维数组的索引和切片
2.多维数组的索引和切片
五、数组的运算
1.基本运算
2.四舍五入
3.小数和整数分别返回为两个数组
4.各元素三角函数、指数
5.各元素符号
6.最值计算
7.模运算
8.数组符号赋值
一、numpy属性
import numpy as np
def npsum():
a = np.array([0, 1, 2])
b = np.array([9, 8, 2])
c = a**2 + b**9
return c
print(npsum())
输出:
[387420489 134217729 516]
1.ndarray(就是array)是一个多维数组对象
由实际数据和描述数据的元数据组成,要求元素类型相同,数组下标从0开始
np.array()生成数组
轴(axis)保存数据的维度
import numpy as np a = np.array([[0, 1, 2],[7, 8, 9]]) print(a) >>> [[0 1 2] [7 8 9]]
秩(rank)轴的数量
a.ndim >>>2
array对象的矩阵描述
a.shape >>>(2, 3)
array元素个数
a.size >>>6
array元素类型
a.dtype
>>>dtype('int32')
array元素大小,以字节为单位
a.itemsize >>>4
2.array可以由非同质对象构成
但是非同质对象无法发挥numpy优势,尽量避免
x.shape
>>>
(2,)
x.dtype
>>>
dtype('O')
x
>>>
array([list([0, 1]), list([9])], dtype=object)
x.itemsize
>>>
8
x.size
>>>
2
二、numpy数组的创建
1.从列表创建
a = np.array([0,1])
>>>
array([0, 1])
2.从元组创建
b = np.array((0,1))
>>>
array([0, 1])
3.从列表和元组创建
c = np.array([[0,1],(3,4)])
>>>
array([[0, 1],
[3, 4]])
4.创建顺序列表
np.arange(5)
>>>
array([0, 1, 2, 3, 4])
5.创建全1、全0、全n矩阵
np.ones((2,5))
>>>
array([[1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1.]])
np.zeros((2,5))
>>>
array([[0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0.]])
np.full((2,5),7)
>>>
array([[7, 7, 7, 7, 7],
[7, 7, 7, 7, 7]])
6.根据a的形状创建全n数组
a = np.array([0,1])
np.full_like(a,9)
>>>
array([9, 9])
7.创建对角线矩阵
np.eye(8)
>>>
array([[1., 0., 0., 0., 0., 0., 0., 0.],
[0., 1., 0., 0., 0., 0., 0., 0.],
[0., 0., 1., 0., 0., 0., 0., 0.],
[0., 0., 0., 1., 0., 0., 0., 0.],
[0., 0., 0., 0., 1., 0., 0., 0.],
[0., 0., 0., 0., 0., 1., 0., 0.],
[0., 0., 0., 0., 0., 0., 1., 0.],
[0., 0., 0., 0., 0., 0., 0., 1.]])
8.合并数组
add = np.concatenate((b1,b2))
>>>
array([ 1. , 4. , 7. , 10. , 1. , 3.25, 5.5 , 7.75])
9.等距填充数组
b1 = np.linspace(1,10,4)
>>>
array([ 1., 4., 7., 10.])
b2 = np.linspace(1,10,4,endpoint=False)
>>>
array([1. , 3.25, 5.5 , 7.75])
10.拷贝数组
b1 = np.linspace(1,10,4)
b3 = b1.astype(np.float64)
b1
>>>
array([ 1., 4., 7., 10.])
b3
>>>
array([ 1., 4., 7., 10.])
三、数组的维度变换
1.返回一个n形状的数组,原数组不变
a = np.ones((2,3,4), dtype=np.int32)
>>>
array([[[1, 1, 1, 1],
[1, 1, 1, 1],
[1, 1, 1, 1]],
[[1, 1, 1, 1],
[1, 1, 1, 1],
[1, 1, 1, 1]]])
a.reshape((3,8))
>>>
array([[1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1]])
a
>>>
array([[[1, 1, 1, 1],
[1, 1, 1, 1],
[1, 1, 1, 1]],
[[1, 1, 1, 1],
[1, 1, 1, 1],
[1, 1, 1, 1]]])
2.返回一个n形状的数组,修改原数组
a.resize((3,8))
>>>
array([[1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1]])
3.调换数组n个维度中的两个维度
a = np.array([0,1]) >>> array([0, 1])
2.从元组创建
b = np.array((0,1))
>>>
array([0, 1])
3.从列表和元组创建
c = np.array([[0,1],(3,4)])
>>>
array([[0, 1],
[3, 4]])
4.创建顺序列表
np.arange(5)
>>>
array([0, 1, 2, 3, 4])
5.创建全1、全0、全n矩阵
np.ones((2,5))
>>>
array([[1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1.]])
np.zeros((2,5))
>>>
array([[0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0.]])
np.full((2,5),7)
>>>
array([[7, 7, 7, 7, 7],
[7, 7, 7, 7, 7]])
6.根据a的形状创建全n数组
a = np.array([0,1])
np.full_like(a,9)
>>>
array([9, 9])
7.创建对角线矩阵
np.eye(8)
>>>
array([[1., 0., 0., 0., 0., 0., 0., 0.],
[0., 1., 0., 0., 0., 0., 0., 0.],
[0., 0., 1., 0., 0., 0., 0., 0.],
[0., 0., 0., 1., 0., 0., 0., 0.],
[0., 0., 0., 0., 1., 0., 0., 0.],
[0., 0., 0., 0., 0., 1., 0., 0.],
[0., 0., 0., 0., 0., 0., 1., 0.],
[0., 0., 0., 0., 0., 0., 0., 1.]])
8.合并数组
add = np.concatenate((b1,b2))
>>>
array([ 1. , 4. , 7. , 10. , 1. , 3.25, 5.5 , 7.75])
9.等距填充数组
b1 = np.linspace(1,10,4)
>>>
array([ 1., 4., 7., 10.])
b2 = np.linspace(1,10,4,endpoint=False)
>>>
array([1. , 3.25, 5.5 , 7.75])
10.拷贝数组
b1 = np.linspace(1,10,4)
b3 = b1.astype(np.float64)
b1
>>>
array([ 1., 4., 7., 10.])
b3
>>>
array([ 1., 4., 7., 10.])
三、数组的维度变换
1.返回一个n形状的数组,原数组不变
a = np.ones((2,3,4), dtype=np.int32)
>>>
array([[[1, 1, 1, 1],
[1, 1, 1, 1],
[1, 1, 1, 1]],
[[1, 1, 1, 1],
[1, 1, 1, 1],
[1, 1, 1, 1]]])
a.reshape((3,8))
>>>
array([[1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1]])
a
>>>
array([[[1, 1, 1, 1],
[1, 1, 1, 1],
[1, 1, 1, 1]],
[[1, 1, 1, 1],
[1, 1, 1, 1],
[1, 1, 1, 1]]])
2.返回一个n形状的数组,修改原数组
a.resize((3,8))
>>>
array([[1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1]])
3.调换数组n个维度中的两个维度
c = np.array([[0,1],(3,4)])
>>>
array([[0, 1],
[3, 4]])
4.创建顺序列表
np.arange(5)
>>>
array([0, 1, 2, 3, 4])
5.创建全1、全0、全n矩阵
np.ones((2,5))
>>>
array([[1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1.]])
np.zeros((2,5))
>>>
array([[0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0.]])
np.full((2,5),7)
>>>
array([[7, 7, 7, 7, 7],
[7, 7, 7, 7, 7]])
6.根据a的形状创建全n数组
a = np.array([0,1])
np.full_like(a,9)
>>>
array([9, 9])
7.创建对角线矩阵
np.eye(8)
>>>
array([[1., 0., 0., 0., 0., 0., 0., 0.],
[0., 1., 0., 0., 0., 0., 0., 0.],
[0., 0., 1., 0., 0., 0., 0., 0.],
[0., 0., 0., 1., 0., 0., 0., 0.],
[0., 0., 0., 0., 1., 0., 0., 0.],
[0., 0., 0., 0., 0., 1., 0., 0.],
[0., 0., 0., 0., 0., 0., 1., 0.],
[0., 0., 0., 0., 0., 0., 0., 1.]])
8.合并数组
add = np.concatenate((b1,b2))
>>>
array([ 1. , 4. , 7. , 10. , 1. , 3.25, 5.5 , 7.75])
9.等距填充数组
b1 = np.linspace(1,10,4)
>>>
array([ 1., 4., 7., 10.])
b2 = np.linspace(1,10,4,endpoint=False)
>>>
array([1. , 3.25, 5.5 , 7.75])
10.拷贝数组
b1 = np.linspace(1,10,4)
b3 = b1.astype(np.float64)
b1
>>>
array([ 1., 4., 7., 10.])
b3
>>>
array([ 1., 4., 7., 10.])
三、数组的维度变换
1.返回一个n形状的数组,原数组不变
a = np.ones((2,3,4), dtype=np.int32)
>>>
array([[[1, 1, 1, 1],
[1, 1, 1, 1],
[1, 1, 1, 1]],
[[1, 1, 1, 1],
[1, 1, 1, 1],
[1, 1, 1, 1]]])
a.reshape((3,8))
>>>
array([[1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1]])
a
>>>
array([[[1, 1, 1, 1],
[1, 1, 1, 1],
[1, 1, 1, 1]],
[[1, 1, 1, 1],
[1, 1, 1, 1],
[1, 1, 1, 1]]])
2.返回一个n形状的数组,修改原数组
a.resize((3,8))
>>>
array([[1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1]])
3.调换数组n个维度中的两个维度
np.ones((2,5))
>>>
array([[1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1.]])
np.zeros((2,5))
>>>
array([[0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0.]])
np.full((2,5),7)
>>>
array([[7, 7, 7, 7, 7],
[7, 7, 7, 7, 7]])
6.根据a的形状创建全n数组
a = np.array([0,1])
np.full_like(a,9)
>>>
array([9, 9])
7.创建对角线矩阵
np.eye(8)
>>>
array([[1., 0., 0., 0., 0., 0., 0., 0.],
[0., 1., 0., 0., 0., 0., 0., 0.],
[0., 0., 1., 0., 0., 0., 0., 0.],
[0., 0., 0., 1., 0., 0., 0., 0.],
[0., 0., 0., 0., 1., 0., 0., 0.],
[0., 0., 0., 0., 0., 1., 0., 0.],
[0., 0., 0., 0., 0., 0., 1., 0.],
[0., 0., 0., 0., 0., 0., 0., 1.]])
8.合并数组
add = np.concatenate((b1,b2))
>>>
array([ 1. , 4. , 7. , 10. , 1. , 3.25, 5.5 , 7.75])
9.等距填充数组
b1 = np.linspace(1,10,4)
>>>
array([ 1., 4., 7., 10.])
b2 = np.linspace(1,10,4,endpoint=False)
>>>
array([1. , 3.25, 5.5 , 7.75])
10.拷贝数组
b1 = np.linspace(1,10,4)
b3 = b1.astype(np.float64)
b1
>>>
array([ 1., 4., 7., 10.])
b3
>>>
array([ 1., 4., 7., 10.])
三、数组的维度变换
1.返回一个n形状的数组,原数组不变
a = np.ones((2,3,4), dtype=np.int32)
>>>
array([[[1, 1, 1, 1],
[1, 1, 1, 1],
[1, 1, 1, 1]],
[[1, 1, 1, 1],
[1, 1, 1, 1],
[1, 1, 1, 1]]])
a.reshape((3,8))
>>>
array([[1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1]])
a
>>>
array([[[1, 1, 1, 1],
[1, 1, 1, 1],
[1, 1, 1, 1]],
[[1, 1, 1, 1],
[1, 1, 1, 1],
[1, 1, 1, 1]]])
2.返回一个n形状的数组,修改原数组
a.resize((3,8))
>>>
array([[1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1]])
3.调换数组n个维度中的两个维度
np.eye(8)
>>>
array([[1., 0., 0., 0., 0., 0., 0., 0.],
[0., 1., 0., 0., 0., 0., 0., 0.],
[0., 0., 1., 0., 0., 0., 0., 0.],
[0., 0., 0., 1., 0., 0., 0., 0.],
[0., 0., 0., 0., 1., 0., 0., 0.],
[0., 0., 0., 0., 0., 1., 0., 0.],
[0., 0., 0., 0., 0., 0., 1., 0.],
[0., 0., 0., 0., 0., 0., 0., 1.]])
8.合并数组
add = np.concatenate((b1,b2))
>>>
array([ 1. , 4. , 7. , 10. , 1. , 3.25, 5.5 , 7.75])
9.等距填充数组
b1 = np.linspace(1,10,4)
>>>
array([ 1., 4., 7., 10.])
b2 = np.linspace(1,10,4,endpoint=False)
>>>
array([1. , 3.25, 5.5 , 7.75])
10.拷贝数组
b1 = np.linspace(1,10,4)
b3 = b1.astype(np.float64)
b1
>>>
array([ 1., 4., 7., 10.])
b3
>>>
array([ 1., 4., 7., 10.])
三、数组的维度变换
1.返回一个n形状的数组,原数组不变
a = np.ones((2,3,4), dtype=np.int32)
>>>
array([[[1, 1, 1, 1],
[1, 1, 1, 1],
[1, 1, 1, 1]],
[[1, 1, 1, 1],
[1, 1, 1, 1],
[1, 1, 1, 1]]])
a.reshape((3,8))
>>>
array([[1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1]])
a
>>>
array([[[1, 1, 1, 1],
[1, 1, 1, 1],
[1, 1, 1, 1]],
[[1, 1, 1, 1],
[1, 1, 1, 1],
[1, 1, 1, 1]]])
2.返回一个n形状的数组,修改原数组
a.resize((3,8))
>>>
array([[1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1]])
3.调换数组n个维度中的两个维度
b1 = np.linspace(1,10,4) >>> array([ 1., 4., 7., 10.]) b2 = np.linspace(1,10,4,endpoint=False) >>> array([1. , 3.25, 5.5 , 7.75])
10.拷贝数组
b1 = np.linspace(1,10,4)
b3 = b1.astype(np.float64)
b1
>>>
array([ 1., 4., 7., 10.])
b3
>>>
array([ 1., 4., 7., 10.])
三、数组的维度变换
1.返回一个n形状的数组,原数组不变
a = np.ones((2,3,4), dtype=np.int32)
>>>
array([[[1, 1, 1, 1],
[1, 1, 1, 1],
[1, 1, 1, 1]],
[[1, 1, 1, 1],
[1, 1, 1, 1],
[1, 1, 1, 1]]])
a.reshape((3,8))
>>>
array([[1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1]])
a
>>>
array([[[1, 1, 1, 1],
[1, 1, 1, 1],
[1, 1, 1, 1]],
[[1, 1, 1, 1],
[1, 1, 1, 1],
[1, 1, 1, 1]]])
2.返回一个n形状的数组,修改原数组
a.resize((3,8))
>>>
array([[1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1]])
3.调换数组n个维度中的两个维度
1.返回一个n形状的数组,原数组不变
a = np.ones((2,3,4), dtype=np.int32)
>>>
array([[[1, 1, 1, 1],
[1, 1, 1, 1],
[1, 1, 1, 1]],
[[1, 1, 1, 1],
[1, 1, 1, 1],
[1, 1, 1, 1]]])
a.reshape((3,8))
>>>
array([[1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1]])
a
>>>
array([[[1, 1, 1, 1],
[1, 1, 1, 1],
[1, 1, 1, 1]],
[[1, 1, 1, 1],
[1, 1, 1, 1],
[1, 1, 1, 1]]])
2.返回一个n形状的数组,修改原数组
a.resize((3,8))
>>>
array([[1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1]])
3.调换数组n个维度中的两个维度
a.resize((3,8))
>>>
array([[1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1]])
3.调换数组n个维度中的两个维度
a.swapaxes(ax1,ax2)
4.对数组降维,返回折叠后的一维数组,原数组不变
a.flatten()
>>>
array([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1])
5.数组转化为列表
a = np.ones((2,3,4), dtype=np.int32)
a.tolist()
>>>
[[[1, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1]], [[1, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1]]]
四、数组的操作
1.一维数组的索引和切片
a = np.ones((2,3,4), dtype=np.int32) a.tolist() >>> [[[1, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1]], [[1, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1]]]
四、数组的操作
1.一维数组的索引和切片
数组的索引-获取特定位置元素
数组的切片-获取数组元素子集
a = np.array([9,8,7,6,5]) a[2] >>> 7 a[1:4:2] >>> array([8, 6])
2.多维数组的索引和切片
a = np.arange(24).reshape((2,3,4))
>>>
array([[[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]],
[[12, 13, 14, 15],
[16, 17, 18, 19],
[20, 21, 22, 23]]])
a[0,0,0]
>>>0
a[0,0,1]
>>>1
a[1,2,3]
>>>23
a[-1,-2,-3]
>>>17
a[:,1,-3]
>>>array([ 5, 17])
a[:,1:3,:]
>>>
array([[[ 4, 5, 6, 7],
[ 8, 9, 10, 11]],
[[16, 17, 18, 19],
[20, 21, 22, 23]]])
a[:,:,::2]
>>>
array([[[ 0, 2],
[ 4, 6],
[ 8, 10]],
[[12, 14],
[16, 18],
[20, 22]]])
五、数组的运算
1.基本运算
a.mean()
>>>11.5
a.max()
>>>23
b = a / a.mean()
>>>
array([[[0. , 0.08695652, 0.17391304, 0.26086957],
[0.34782609, 0.43478261, 0.52173913, 0.60869565],
[0.69565217, 0.7826087 , 0.86956522, 0.95652174]],
[[1.04347826, 1.13043478, 1.2173913 , 1.30434783],
[1.39130435, 1.47826087, 1.56521739, 1.65217391],
[1.73913043, 1.82608696, 1.91304348, 2. ]]])
np.abs(a)
>>>
array([[[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]],
[[12, 13, 14, 15],
[16, 17, 18, 19],
[20, 21, 22, 23]]])
np.sqrt(a)
>>>
array([[[0. , 1. , 1.41421356, 1.73205081],
[2. , 2.23606798, 2.44948974, 2.64575131],
[2.82842712, 3. , 3.16227766, 3.31662479]],
[[3.46410162, 3.60555128, 3.74165739, 3.87298335],
[4. , 4.12310563, 4.24264069, 4.35889894],
[4.47213595, 4.58257569, 4.69041576, 4.79583152]]])
np.square(a)
>>>
array([[[ 0, 1, 4, 9],
[ 16, 25, 36, 49],
[ 64, 81, 100, 121]],
[[144, 169, 196, 225],
[256, 289, 324, 361],
[400, 441, 484, 529]]])
np.log(a)
>>>
array([[[ -inf, 0. , 0.69314718, 1.09861229],
[1.38629436, 1.60943791, 1.79175947, 1.94591015],
[2.07944154, 2.19722458, 2.30258509, 2.39789527]],
[[2.48490665, 2.56494936, 2.63905733, 2.7080502 ],
[2.77258872, 2.83321334, 2.89037176, 2.94443898],
[2.99573227, 3.04452244, 3.09104245, 3.13549422]]])
np.log2(a)
>>>
array([[[ -inf, 0. , 1. , 1.5849625 ],
[2. , 2.32192809, 2.5849625 , 2.80735492],
[3. , 3.169925 , 3.32192809, 3.45943162]],
[[3.5849625 , 3.70043972, 3.80735492, 3.9068906 ],
[4. , 4.08746284, 4.169925 , 4.24792751],
[4.32192809, 4.39231742, 4.45943162, 4.52356196]]])
np.log10(a)
>>>
array([[[ -inf, 0. , 0.30103 , 0.47712125],
[0.60205999, 0.69897 , 0.77815125, 0.84509804],
[0.90308999, 0.95424251, 1. , 1.04139269]],
[[1.07918125, 1.11394335, 1.14612804, 1.17609126],
[1.20411998, 1.23044892, 1.25527251, 1.2787536 ],
[1.30103 , 1.32221929, 1.34242268, 1.36172784]]])
np.floor(a)
>>>
array([[[ 0., 1., 2., 3.],
[ 4., 5., 6., 7.],
[ 8., 9., 10., 11.]],
[[12., 13., 14., 15.],
[16., 17., 18., 19.],
[20., 21., 22., 23.]]])
2.四舍五入
b1 = np.linspace(1,11,4)
>>>
array([ 1. , 4.33333333, 7.66666667, 11. ])
np.rint(b1)
>>>
array([ 1., 4., 8., 11.])
3.小数和整数分别返回为两个数组
np.modf(b1)
>>>
(array([0. , 0.33333333, 0.66666667, 0. ]), array([ 1., 4., 7., 11.]))
4.各元素三角函数、指数
np.cos(b1)
>>>
array([ 0.54030231, -0.37004332, 0.1862215 , 0.0044257 ])
np.exp(b1)
>>>
array([2.71828183e+00, 7.61978566e+01, 2.13594973e+03, 5.98741417e+04])
5.各元素符号
np.sign(b1)
>>>
array([1., 1., 1., 1.])
6.最值计算
import numpy as np
b1 = np.linspace(1,11,4)
b2 = np.sqrt(b1)
np.maximum(b1,b2)
>>>
array([ 1. , 4.33333333, 7.66666667, 11. ])
b1>b2
>>>
array([False, True, True, True])
b1 != b2
>>>
array([False, True, True, True])
7.模运算
np.mod(b1,b2)
>>>
array([0. , 0.17000133, 2.12891742, 1.05012563])
8.数组符号赋值
np.copysign(b1,b2)
>>>
array([ 1. , 4.33333333, 7.66666667, 11. ])
1.基本运算
a.mean()
>>>11.5
a.max()
>>>23
b = a / a.mean()
>>>
array([[[0. , 0.08695652, 0.17391304, 0.26086957],
[0.34782609, 0.43478261, 0.52173913, 0.60869565],
[0.69565217, 0.7826087 , 0.86956522, 0.95652174]],
[[1.04347826, 1.13043478, 1.2173913 , 1.30434783],
[1.39130435, 1.47826087, 1.56521739, 1.65217391],
[1.73913043, 1.82608696, 1.91304348, 2. ]]])
np.abs(a)
>>>
array([[[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]],
[[12, 13, 14, 15],
[16, 17, 18, 19],
[20, 21, 22, 23]]])
np.sqrt(a)
>>>
array([[[0. , 1. , 1.41421356, 1.73205081],
[2. , 2.23606798, 2.44948974, 2.64575131],
[2.82842712, 3. , 3.16227766, 3.31662479]],
[[3.46410162, 3.60555128, 3.74165739, 3.87298335],
[4. , 4.12310563, 4.24264069, 4.35889894],
[4.47213595, 4.58257569, 4.69041576, 4.79583152]]])
np.square(a)
>>>
array([[[ 0, 1, 4, 9],
[ 16, 25, 36, 49],
[ 64, 81, 100, 121]],
[[144, 169, 196, 225],
[256, 289, 324, 361],
[400, 441, 484, 529]]])
np.log(a)
>>>
array([[[ -inf, 0. , 0.69314718, 1.09861229],
[1.38629436, 1.60943791, 1.79175947, 1.94591015],
[2.07944154, 2.19722458, 2.30258509, 2.39789527]],
[[2.48490665, 2.56494936, 2.63905733, 2.7080502 ],
[2.77258872, 2.83321334, 2.89037176, 2.94443898],
[2.99573227, 3.04452244, 3.09104245, 3.13549422]]])
np.log2(a)
>>>
array([[[ -inf, 0. , 1. , 1.5849625 ],
[2. , 2.32192809, 2.5849625 , 2.80735492],
[3. , 3.169925 , 3.32192809, 3.45943162]],
[[3.5849625 , 3.70043972, 3.80735492, 3.9068906 ],
[4. , 4.08746284, 4.169925 , 4.24792751],
[4.32192809, 4.39231742, 4.45943162, 4.52356196]]])
np.log10(a)
>>>
array([[[ -inf, 0. , 0.30103 , 0.47712125],
[0.60205999, 0.69897 , 0.77815125, 0.84509804],
[0.90308999, 0.95424251, 1. , 1.04139269]],
[[1.07918125, 1.11394335, 1.14612804, 1.17609126],
[1.20411998, 1.23044892, 1.25527251, 1.2787536 ],
[1.30103 , 1.32221929, 1.34242268, 1.36172784]]])
np.floor(a)
>>>
array([[[ 0., 1., 2., 3.],
[ 4., 5., 6., 7.],
[ 8., 9., 10., 11.]],
[[12., 13., 14., 15.],
[16., 17., 18., 19.],
[20., 21., 22., 23.]]])
2.四舍五入
b1 = np.linspace(1,11,4)
>>>
array([ 1. , 4.33333333, 7.66666667, 11. ])
np.rint(b1)
>>>
array([ 1., 4., 8., 11.])
3.小数和整数分别返回为两个数组
np.modf(b1)
>>>
(array([0. , 0.33333333, 0.66666667, 0. ]), array([ 1., 4., 7., 11.]))
4.各元素三角函数、指数
np.cos(b1)
>>>
array([ 0.54030231, -0.37004332, 0.1862215 , 0.0044257 ])
np.exp(b1)
>>>
array([2.71828183e+00, 7.61978566e+01, 2.13594973e+03, 5.98741417e+04])
5.各元素符号
np.sign(b1)
>>>
array([1., 1., 1., 1.])
6.最值计算
import numpy as np
b1 = np.linspace(1,11,4)
b2 = np.sqrt(b1)
np.maximum(b1,b2)
>>>
array([ 1. , 4.33333333, 7.66666667, 11. ])
b1>b2
>>>
array([False, True, True, True])
b1 != b2
>>>
array([False, True, True, True])
7.模运算
np.mod(b1,b2)
>>>
array([0. , 0.17000133, 2.12891742, 1.05012563])
8.数组符号赋值
np.copysign(b1,b2)
>>>
array([ 1. , 4.33333333, 7.66666667, 11. ])
b1 = np.linspace(1,11,4) >>> array([ 1. , 4.33333333, 7.66666667, 11. ]) np.rint(b1) >>> array([ 1., 4., 8., 11.])
3.小数和整数分别返回为两个数组
np.modf(b1)
>>>
(array([0. , 0.33333333, 0.66666667, 0. ]), array([ 1., 4., 7., 11.]))
4.各元素三角函数、指数
np.cos(b1)
>>>
array([ 0.54030231, -0.37004332, 0.1862215 , 0.0044257 ])
np.exp(b1)
>>>
array([2.71828183e+00, 7.61978566e+01, 2.13594973e+03, 5.98741417e+04])
5.各元素符号
np.sign(b1)
>>>
array([1., 1., 1., 1.])
6.最值计算
import numpy as np
b1 = np.linspace(1,11,4)
b2 = np.sqrt(b1)
np.maximum(b1,b2)
>>>
array([ 1. , 4.33333333, 7.66666667, 11. ])
b1>b2
>>>
array([False, True, True, True])
b1 != b2
>>>
array([False, True, True, True])
7.模运算
np.mod(b1,b2)
>>>
array([0. , 0.17000133, 2.12891742, 1.05012563])
8.数组符号赋值
np.copysign(b1,b2)
>>>
array([ 1. , 4.33333333, 7.66666667, 11. ])
np.cos(b1) >>> array([ 0.54030231, -0.37004332, 0.1862215 , 0.0044257 ]) np.exp(b1) >>> array([2.71828183e+00, 7.61978566e+01, 2.13594973e+03, 5.98741417e+04])
5.各元素符号
np.sign(b1)
>>>
array([1., 1., 1., 1.])
6.最值计算
import numpy as np
b1 = np.linspace(1,11,4)
b2 = np.sqrt(b1)
np.maximum(b1,b2)
>>>
array([ 1. , 4.33333333, 7.66666667, 11. ])
b1>b2
>>>
array([False, True, True, True])
b1 != b2
>>>
array([False, True, True, True])
7.模运算
np.mod(b1,b2)
>>>
array([0. , 0.17000133, 2.12891742, 1.05012563])
8.数组符号赋值
np.copysign(b1,b2)
>>>
array([ 1. , 4.33333333, 7.66666667, 11. ])
import numpy as np b1 = np.linspace(1,11,4) b2 = np.sqrt(b1) np.maximum(b1,b2) >>> array([ 1. , 4.33333333, 7.66666667, 11. ]) b1>b2 >>> array([False, True, True, True]) b1 != b2 >>> array([False, True, True, True])
7.模运算
np.mod(b1,b2)
>>>
array([0. , 0.17000133, 2.12891742, 1.05012563])
8.数组符号赋值
np.copysign(b1,b2)
>>>
array([ 1. , 4.33333333, 7.66666667, 11. ])
np.copysign(b1,b2) >>> array([ 1. , 4.33333333, 7.66666667, 11. ])



