常用运算--numpy

1. 四则运算

import numpy as np

a = np.arange(0, 6).reshape(2, 3)
b = np.random.randint(1, 10, 6).reshape(2, 3)
print('数组a:', a, sep='\n')
print('数组b:', b, sep='\n')
# 1. 四则运算
# 1.1 加法: +,对应位置数字相加
c1 = a + b
print('数组a+b:', c1, sep='\n')
# 1.2 减法: -,对应位置数字相减
c2 = a - b
print('数组a-b:', c2, sep='\n')
# 1.3 乘法: *,对应位置数字相乘
c3 = a * b
print('数组a*b:', c3, sep='\n')
# 1.4 除法: /,对应位置数字相除
c4 = a / b
print('数组a/b:', c4, sep='\n')

常用运算--numpy_第1张图片
常用运算--numpy_第2张图片

2. +=、*=、-=、/=

修改已存在的数组,而不会创建新数组
修改已存在的数组需要注意:
原数组可能因为精度不够而无法储存修改后的新数组
print('a的内存位置: ', id(a))
a += b
print('+=', a, sep='\n')
print('a的内存位置: ', id(a))
a -= b
print('-=', a, sep='\n')
a *= b
print('*=', a, sep='\n')

常用运算--numpy_第3张图片

原数组因为精度不够而无法储存修改后的新数组,导致报错,此时应该使用生成新数组的操作
常用运算--numpy_第4张图片

3. 不同类型的数组操作

结果与精度更高精度类型的数组保持一致

import numpy as np
a = np.arange(0, 6).reshape(2, 3)
b = np.random.randn(6).reshape(2, 3)
print('数组a:', a.dtype, a, sep='\n')
print('数组b:', b.dtype, b, sep='\n')

c = a+b
print('数组c:', c.dtype, c, sep='\n')

常用运算--numpy_第5张图片

4. 数组元素求和: sum

1. 函数功能: 
给定维度的数组元素的和
2. 函数语法:
sum(a,axis,dtype,out,keepdims,initial)
a: 数组
axis: 可选参数,整数或整数组成的元组或None;执行求和操作的维度,
      默认取值为None: 对数组的所有元素求和
      取值为负值:表示从最后一个轴开始向最第一个轴计算
      取值为整数: 计算对应轴元素的和
      取值为元组: 同时计算对应轴的元素和
dtype: 可选参数,返回数组元素的数据类型,默认与数组a的数据类型相同
out: 可选参数,将输出结果保存在out指定数组所在的内存中
keepdims: 输出结果保持原数组的维度
initial: 求和结果的初始值
3. 返回值: 数组或标量

4.1 参数: a与axis

4.1.1 axis取值为None

import numpy as np
a = np.arange(0, 24).reshape(2, 3, 4)
print('数组a:', a.dtype, a, sep='\n')
# 0. 取值为None
s0 = np.sum(a)
print('所有元素的和: ', s0)

常用运算--numpy_第6张图片

4.1.2 axis取值为负数

s11 = np.sum(a, axis=-1)
print('数组a:axis=-1的和', s11, sep='\n')
s12 = np.sum(a, axis=(-1, -2))
print('数组a:axis=-1的和', s12, sep='\n')

常用运算--numpy_第7张图片

4.1.3 axis取值为非负整数

s21 = np.sum(a, axis=0)
print('数组a:axis=0的和', s21, sep='\n')
s22 = np.sum(a, axis=1)
print('数组a:axis=1的和', s22, sep='\n')
s23 = np.sum(a, axis=2)
print('数组a:axis=2的和', s23, sep='\n')

常用运算--numpy_第8张图片

4.1.4 axis取值为元组

常用运算--numpy_第9张图片

4.2 dtype: 指定输出结果的数据类型

# 4. dtype: 指定输出结果的数据类型
s4 = np.sum(a, dtype='float64')
print('指定类型的输出结果s4: ', s4)

在这里插入图片描述

4.3 keepdims: 输出结果保持原数组的维度

# 5. keepdims: 输出结果保持原数组的维度
s51 = np.sum(a, dtype='float64', keepdims=True)
print('指定类型的输出结果s51: ', s51)
s52 = np.sum(a, axis=2, keepdims=True)
print('数组a:axis=2的和', s52, sep='\n')

常用运算--numpy_第10张图片

4.4 initial: 求和结果的初始值

# 6. initial: 求和结果的初始值
s6 = np.sum(a, dtype='float64', initial=1000)
print('输出结果加初始值1000的结果s6: ', s6)

在这里插入图片描述

4.5 out: 将输出结果保存在out指定的数组所在内存中

注意:
1)out指定数组的形状要与运算结果的数组形状一致;
2)指定out可以节省内存,会用新的数组替换原来的数组,而不是生成新的数组

#  out: 将输出结果保存在out指定的数组所在内存中
demo = np.zeros((3, 4))
print(id(demo))
demo1 = np.sum(a, axis=0)
print('数组a:axis=0的和', demo1, sep='\n')
demo2 = np.sum(a, axis=0, out=demo)
print('数组a:axis=0的和', demo2, sep='\n')
print(demo1)
print(id(demo1))
print(id(demo2))

常用运算--numpy_第11张图片

5. 矩阵相乘: @或dot

d = np.ones((3,2))
print(d)
c5 = a@d
c6 = a.dot(d)
print('对数组a,b进行矩阵运算:', c5, sep='\n')
print('对数组a,b进行矩阵运算:', c6, sep='\n')

常用运算--numpy_第12张图片

6. 通用函数

函数名称 函数
sin(x) 正弦函数
cos(x) 余弦函数
exp(x) 指数函数
sqrt(x) 正数平方根
import numpy as np
x = np.arange(1, 5)
b1 = np.sin(x)
b2 = np.cos(x)
b3 = np.exp(x)
b4 = np.sqrt(x)
print('x: ', x)
print('sin(x): ', b1)
print('cos(x): ', b2)
print('exp(x): ', b3)
print('sqrt(x): ', b4)

常用运算--numpy_第13张图片

你可能感兴趣的:(Numpy,numpy,python,数据分析)