numpy:在数据处理中需要掌握的函数

1.创建数组(ndarray)

2.数组与标量的运算

3.切片,索引

4.通用函数

5.数组文件的输入输出

6.随机数生成

1.创建数组(ndarray)

numpy创建的类型是多维数组,数组和列表和元组有什么区别

数组:类型一致[[1,2],[3,4]]用[ ],数组可以通过array函数将list转化为数组

列表:(1,2,3)用( ),支持切片,大小可变,数据类型一致

元组:()  不可变,元素类型可以不一致

(1)# list转换为 ndarray

l = range(10)
data = np.array(l)
print(data)
print(data.shape)

print(data.ndim)

(2)# 嵌套序列转换为ndarray
l2 = [range(10), range(10)]
data = np.array(l2)
print(data)

print(data.shape)

(3)# np.zeros, np.ones 和 np.empty


# np.zeros
zeros_arr = np.zeros((3, 4))


# np.ones
ones_arr = np.ones((2, 3))


# np.empty
empty_arr = np.empty((3, 3))


# np.empty 指定数据类型
empty_int_arr = np.empty((3, 3), int)


print(zeros_arr)
print('-------------')
print(ones_arr)
print('-------------')
print(empty_arr)
print('-------------')

print(empty_int_arr)

(4)# np.arange()

print(np.arange(10))

arange与range的区别

arange返回一个数组   arange(start,end,step)

range返回一个列表      range(start,end,step)

  • ndarray数据类型
  • dtype定义类型   astype类型 转换
zeros_float_arr = np.zeros((3, 4), dtype=np.float64)
print(zeros_float_arr)
print(zeros_float_arr.dtype)


# astype转换数据类型
zeros_int_arr = zeros_float_arr.astype(np.int32)
print(zeros_int_arr)

print(zeros_int_arr.dtype)

  • 矢量化 (vectorization)
# 矢量与矢量运算
arr = np.array([[1, 2, 3],
                [4, 5, 6]])


print("元素相乘:")
print(arr * arr)


print("矩阵相加:")

print(arr + arr)

# 矢量与标量运算(广播)体现Python的数据处理比较灵活
print(1. / arr)
print(2. * arr)

  • 索引与切片
# 一维数组
arr1 = np.arange(10)
print(arr1)


print(arr1[2:5])#起始位置 包括,终止位置不包括

# 多维数组
arr2 = np.arange(12).reshape(3,4)

print(arr2)


print(arr2[1])


print(arr2[0:2, 2:])


print(arr2[:, 1:3])#列表不包含最后一个数

# 条件索引


# 找出 data_arr 中 2015年后的数据
data_arr = np.random.rand(3,3)
print(data_arr)


year_arr = np.array([[2000, 2001, 2000],
                     [2005, 2002, 2009],
                     [2001, 2003, 2010]])


#is_year_after_2005 = year_arr >= 2005

#print is_year_after_2005, is_year_after_2005.dtype

# 多个条件
filtered_arr = data_arr[(year_arr <= 2005) & (year_arr % 2 == 0)]
print(filtered_arr)



#filtered_arr = data_arr[is_year_after_2005]


filtered_arr = data_arr[year_arr >= 2005]

print(filtered_arr)

  • 转置
arr = np.random.rand(2,3)
print(arr)

print(arr.transpose())


  • 通用函数

arr = np.random.randn(2,3)

print(arr)
print(np.ceil(arr))
print(np.floor(arr))
print(np.rint(arr))

print(np.isnan(arr))

  • np.where
arr = np.random.randn(3,4)
print(arr)


np.where(arr > 0, 1, -1)#条件运算向量版本

  • 常用的统计方法
arr = np.arange(10).reshape(5,2)
print(arr)


print(np.sum(arr))
print(np.sum(arr, axis=0))#按列

print(np.sum(arr, axis=1))#按行

  • np.all 和 np.any
arr = np.random.randn(2,3)
print(arr)


print(np.any(arr > 0))

print(np.all(arr > 0))

arr = np.array([[1, 2, 1], [2, 3, 4]])
print(arr)

print(np.unique(arr))

txt文件的读取 da是文件名

data=np.loadtxt('da.txt')

数组的存储,与读取  save    load  其中保存的格式是.npy

arr=np.arange(10)

np.save('some_array',arr)

np.load('some_array.npy')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值