必备-基础知识

一维数组
import numpy as np
a = np.arange(6)
print(a)
[0 1 2 3 4 5]
print(a[2])
2
print(a[-1])
5
print(a[-3])
3
a1=a.copy()
print(a1)
[0 1 2 3 4 5]
a2=a[1:3].copy()
print(a2)
[1 2]
多维数组的索引和切片
arr = np.arange(12).reshape(3,4)
print(arr)
[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]]
print(arr[0,1])
1
print(arr[0:2,1])
[1 5]
print(arr[:,(1,2)])
[[ 1  2]
 [ 5  6]
 [ 9 10]]
# 此输出少?取值位置1,1对应
print(arr[(0,2),(1,2)])
[ 1 10]
# 布尔mask
mask = np.array([1,0,1],dtype=np.bool)
print(mask)
[ True False  True]
# 怎么确定行?1才显示
print(arr[mask,1])
[1 9]
numpy通用函数ufunc函数
# 数组和标量的运算numpy不用for可直接*
# numpy通用函数ufunc函数-四则运算-注意:幂(**),比较运算,
# np.any表示逻辑or,np.all表示and,返回布尔值
# np. 广播任何维度不匹配,但至少有一个维度。左自动补1,
# 暂且来看,只有一个维度相等,多维都会遍历加底维
# 查看行列
print(arr)
print(arr.shape)
[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]]
(3, 4)
b = np.array([[1,1,1,1]])
print(b)
print(b.shape)
[[1 1 1 1]]
(1, 4)
c = arr + b
print(c)
[[ 1  2  3  4]
 [ 5  6  7  8]
 [ 9 10 11 12]]
np.where(条件,成立返回,不成立返回)
# np.where(条件,成立返回,不成立返回)
# 解决条件逻辑运算,不适用大规模数组的情况
np.where([[True,False],[True,True]],
         [[1,2],[3,4]],[[9,8],[7,6]])
array([[1, 8],
       [3, 4]])
w = np.array([2,1,-2,3])
w1 = np.where(w>0)
print(w1)
(array([0, 1, 3]),)