Python之Numpy零基础入门(三)

阿里云双11来了!从本博客参与阿里云,服务器最低只要86元/年!

1、数组和标量间的运算

数组不需要通过循环就可以完成批量计算,相同维度的数组的算术运算可以直接应用到元素中

a = [1,3,5,7]
b = []
for i in a:
    b.append(i*10)
print(a)   
print(b)
print('直接a*10会打印10个a')
c = a*10
print(c)
print('所以需要先把a转化为数组')
arr = np.array([1,3,5,7])
c = arr*10
print(c)

2、通用函数(ufunc)

print('1、add函数:求和')
a = np.array([1,-2,3,-4])
b = np.array([5,7,3,2])
c = np.add(a,b)
print(c)
print('注意:相加的两个数组长度要一致')
print('2、reduce函数:对数组元素求和')
d = np.add.reduce(a)
print(d)
print(np.add.reduce(a[2:4]))
print('3、accumulate函数:累加函数')
print(np.add.accumulate(b))
print(np.add.accumulate(b[1:3]))
print('4、abs函数:求绝对值')
e = np.abs(a)
print(e)
print('5、sqrt平方根函数')
aa = np.array([25,36,49,64])
print(np.sqrt(aa))
print('6、square平方函数')
print(np.square(aa))

3、条件逻辑运算

print('1、if函数')
a = np.arange(10)
if 5 in a:
    print(a*10)
print('2、where函数')
a = np.array([1,3,5,7])
b = np.array([2,4,6,8])
c = np.array([True,False,True,False])
print(np.where(c,a,b))#表示当c值为true时选择a,否则选择b
print('3、elif函数进行多条件判别')
age = 18
if 18<age<30:       
    print("你是一个成年人")              
elif age>30:
    print("你是一个中年人")
else:
    print("你是一个未成年人")

4、统计运算

print('1、sum函数')
a = np.arange(9).reshape(3,3)
print(a)
print(a.sum())
print('2、mean函数')
print(a.mean())
print('3、std函数')
print(a.std())
print(a.std(axis = 1))
print('4、cumsum函数:计算累计和')
print(a.cumsum(0))#竖着累加
print('5、cumprod函数:计算累计积')
print(a.cumprod(1))#横着累积

5、布尔型数组运算

对于布尔型数组,其值会被强制转换成true或false,即1或0

a = np.random.randn(30)
print(a)
print((a>0).sum())

另外,any和all也运用于布尔型数组运算;
any:用于测试数组中是否存在true;
all:用于检查数组中的值是否都为true。

b = np.array([True,False,False,True,True])
print(b)
print(b.any())
print(b.all())

6、排序

numpy数组可以通过sort等方法排序,也可以通过指定轴的方法排序,如下:

a = np.random.randn(5)
print(a)
print('----------------------------')
a.sort()
print(a)
print('----------------------------')
b = np.random.randn(4,3)
print(b)
print('----------------------------')
b.sort(1)
print(b)

7、集合运算

unique(x):唯一值
intersect1d(x,y):公共元素
union1d(x,y):并集
in1d(x,y):x的元素是否存在于y中,返回的是布尔型数组
setdiff1d(x,y):集合的差
setxor1d(x):交集取反

a = np.array([2,3,4,5,8,4,7,3,4])
print(a)
print(np.unique(a))
print('----------------------------')
b=np.array([2,9,0,8,5,1])
print(b)
print(np.intersect1d(a,b))
print('----------------------------')
print(np.union1d(a,b))
print('----------------------------')
print(np.in1d(a,[2,7]))
print('----------------------------')
print(np.setdiff1d(a,b))
print('----------------------------')
print(np.setxor1d(a,b))

                                  全文完,感谢您的耐心阅读 ~


https://www.jianshu.com/p/0043b11a10c2

Python量化投资网携手4326手游为资深游戏玩家推荐:《悠唐天下下载

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
GO
0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论