机器学习-numpy01

numpy中的一维数组

一、向量运算
numpy中的一维数组为ndarray数据类型

+、-、*、/、**(次方):同纬度ndarray对应位之间操作
ndarray+数字:所有位加数字
list不能加数字,只能加同纬度list、ndarray相加
ndarray+ndarray:对应位相加,需要维度相同

&、|、~运算:
当数据位boolean类型时,是与或非操作
当数据为整数时,是按位做与或非操作
3&1 = 1
11
01
01->1

~3:所有位取非,64位的电脑会把3转换为64位的二进制,即00000…11所有位取非11111…00,第一位位符号位,首位为1则为负数,其余位用补码表示,即其余位取非再加1。
~3->111111…00->-(00000…11)+1->-4
即~n = -(n+1)

<、>、<=、>=、!=、==运算
对应位比较,返回True或False

import numpy as np
a = np.array([1,2,3])
b = np.array([3,2,1])
print('a+1={}'.format(a+1))#输出:a+1=[2,3,4]
print('a+b={}'.format(a+b))#输出:a+b=[4,4,4]

mean()方法:取均值

2、索引数组
只含True或False的一组数组为索引数组,索引数组可以作为数组的索引,得到索引数组中为True位置的元素。

a = np.array([1,2,3])
b = np.array([True,False,True])
print(a[b])#[1 3]

可以利用比较运算来得到索引数组

a = np.array([1,2,3])
b = np.array([3,2,1])
c = a >= b
print(a[c]) #[2 3]

3、原地操作和非原地操作
1、ndarray和list的原地操作和非原地操作

+=:原地操作,即运算结果储存到原地址
=:非原地操作,即运算结果储存到新开辟的内存地址中
此概念适用于ndarray和list

a = np.array([2,3,4])
b = a
b += np.array([4,3,2])
print(a)#[6,6,6]
a = np.array([2,3,4])
b = a
b =b + np.array([4,3,2])
print(a)#[2,3,4]

2、切片的原地操作和非原地操作
对list切片之后,对切片的操作为非原地操作
对ndarray切片之后,对切片的操作为原地操作

#list切片的非原地操作
li1 = [1,2,3,4]
li2 = li1[:2]
li2[0] = 0
print(li1)#[1,2,3,4]
print(li2)#[0,2]

#ndarray切片的原地操作
a = np.array[1,2,3]
b = a[:2]
b[0] = 0
print(a)#[0 2 3]
print(6)#[0 2]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值