如何访问numpy数组中的元素?
采用索引或者切片的方式
#导入包
import numpy as np
'''
访问ndarry中的元素--索引和切片
'''
#一维数组的索引和切片
arr=np.random.randint(0,20,10)
print(arr)
#index arr[0]
print(arr[1])
'''
切片: ndarray[start:stop:step]
start.default=0,stop.default=end包括最后一个元素,
如果stop指定值,stop不包括终止值。step.default=1
'''
print(arr[:])
print(arr[1:7:2])
print(arr[-1:-4:-1])
#注意:切片方向需要和步长一致
# 倒序需要写step步长为负数
print(arr[::-1])#反转数组
#高维数组索引和切片
arr2=np.random.randint(0,20,(3,3))
print(arr2)
#index arr2[n]
print(arr2[1]) #得到第二行
#index arr2[m][n]
print(arr2[0][0]) #得到00位置的元素
print(arr2[0][1:3])
'''
注意:切片形成的数组是原数组的视图,如果更改,会级联修改
'''
#example
arr1_1=arr[3:6]
arr1_1[0]=1
print(arr1_1)
print(arr)
#结果可见arr 与 arr1_1 对应的元素修改
#.copy()进行深拷贝,切片数组与原数组相对独立
#example
arr1_2=arr[1:8].copy()
print(arr1_2)
arr1_2[1]=99
print(arr1_2)
print(arr)
#整数数组索引切片
# arr[a1,a2,a3,...,an] 对应轴信息
print(arr[[1,2,4,5]])#舍弃了arr[3]的元素
print(arr2[[0,1,2],[0,1,2]]) #arr[[元素所在第0个轴的信息],[第一个轴的信息],[。。。]]
#高级切片形成的数组与原数组独立
#布尔索引切片
print(arr>10)
print(arr[arr>10]) #提取出>10的元素
numpy计算的一些特殊操作
#导入包
import numpy as np
#numpy运算
'''
1.数学运算函数
exp(x) 计算e的x次方
exp2(x) 计算2的x次方
power(x1,x2) 计算x1的x2次幂
mod(x) 返回输入数组中相应元素的除法余数
log(x) 自然对数,逐元素
log2(x) 以2为底x对数
log10(x) 以10为底x的对数
sqrt(x) 按元素方式返回数组的正平方根
square(x) 返回输入的元素平方
'''
arr=np.array([2,2,2])
arr1=np.exp(arr)
print(arr1)
arr2=np.exp2(arr)
print(arr2)
print(pow(10,2))
print(np.power(arr,2))
#如果要求以e和2以外的数为底的对数,需要用到换底公式
'''
2、取整函数
numpy.around()
这个函数返回四舍五入到所需精度的值。
#注意:遇0.5取距离数最近的偶数,而非人为的四舍五入
numpy.floor() 向下取整
此函数返回不大于输入参数的最大整数。
numpy.ceil()向上取整 本函数返回输入值的上限
'''
'''
3、统计函数
常用统计函数
numpy.amin() 从给定数组中的元素沿指定轴返回最小值
numpy.amax() 从给定数组中的元素沿指定轴返回最大值
numpy.median() 返回数组中值
numpy.mean() 返回数组的算术平均值
numpy.std() 返回数组的标准差
'''
'''
4、排序和索引函数
函数名 函数作用
numpy.sort() 返回输入数组的排序副本。
numpy.sort()[::-1] #降序排序
numpy.nonzero() 返回输入数组中非零元素的索引。
numpy.where() 返回输入数组中满足给定条件的元素的索引
'''
'''
5、唯一化
np.unique() 去重函数
'''
'''
6、集合逻辑
np.in1d() 验证元素是否在给定序列中
np.intersect1d() 求交集
np.union1d() 求并集
np.setdiff1d() 求差集
'''