numpy和pandas的学习知识点

# -*- encoding: utf-8 -*-
"""
@File    : homework_5.py
@Time    : 2019/9/16 16:03
@Author  : chen

"""
import numpy as np
import pandas as pd

data = [1, 2, 3, 4]
n = np.array(data * 10)
print(n)

print("形状是:", n.shape)
# 获取数据类型
print(n.dtype)

# 嵌套序列
arr = [[1,2,3,4],[3,4,5,6]]
arr2 = np.array(arr)
print(arr)
print(type(arr))  # 只是list,没有shape函数

print(arr2)
print("形状是:", arr2.shape)

# 获取维度
print("维度是:", arr2.ndim)

# 创建空数组
print(np.zeros(10))
print("2行3列空矩阵:", np.empty((2, 3)))

print(np.arange(10))

# 矢量化运算
arr1 = np.array([1,2,3,4])
arr2 = np.array([1,2,3,4])
print(arr1+arr2)
# 矩阵相加减
arr1 = np.array([[1,2,3,4],[1,2,3,4]])
arr2 = np.array([[1,2,3,4],[1,2,3,4]])
print(arr1+arr2)
# 矩阵相乘运算不是对应位置相乘,下面的运算相对于矩阵相乘运算来说是错误的
print("错误的矩阵运算,不是矩阵相乘运算结果:", arr1*arr2)

# 切片操作与list相同
# 花式索引  Fancy indexing  指的是利用整数组来进行索引
arr = np.empty((8, 4))
for i in range(8):
    arr[i] = i
print("输出arr:", arr)
print("花式索引[2,5]:", arr[[2, 5]])   # 花式索引

#
arr = np.arange(32).reshape((8,4))    # (8,4)括号中的相乘必须等于前面的np.arange(32)中的数字
print("创建新的数组:", arr)
print("花式索引:", arr[[1, 5, 7, 2]])
print("花式索引1:", arr[[1, 5, 7, 2],[0,3,1,2]])  # [0,3,1,2]代表列数
print("花式索引2:", arr[[1, 5, 7, 2]][:,[0,3,1,2]])   # [0,3,1,2]代表列数   对比上下不同

print("花式索引3:", arr[np.ix_([1, 5, 7, 2],[0,3,1,2])])

# 数学方面的应用
arr = np.random.randn(4, 4)
print(arr)
print("均值", arr.mean())   # 均值
print("求和", arr.sum())    # 求和
print("标准差", arr.std())    # 标准差
print("第一行均值", arr.mean(1))   # 均值
print("第一行求和", arr.sum(1))    # 求和
print("第一行标准差", arr.std(1))    # 标准差


# 矩阵相乘
x = np.array([[1,2,3],[4,5,6]])
y = np.array([[1,2],[4,5],[7,8]])
print("矩阵相乘:", x.dot(y))


'''
Pandas模块
是基于Numpy构建的,让以Numpy为中心的应用变得更加简单
它专注于数据处理
可以帮助数据分析,数据挖掘,算法等工程师岗位处理预处理的问题
比如数据类型的转换,确实值得处理,描述性统计分析,数据汇总等功能

'''
print("************************************************************")
import pandas as pd
# 构造序列 Series
obj = pd.Series([1,2,3,4])
print(obj)
print(obj[0])
print(obj[[0,2]])

obj2 = pd.Series({"name":"1","age":"2","sex":"3"})
print(obj2)
print(obj2["name"])
print(obj2[["name","age"]])   # 注意这里的[]

obj3 = pd.Series(["1","shanghai","25"],index=["name","adress","age"])
print(obj3)

num1 = pd.Series([4,8,16,32,64])
print(np.log2(num1))                          # 对数运算

# DataFrame    数据框
print("DataFrame    数据框")
dfl = pd.DataFrame([["1",21,'男'],["2",22,'男'],["3",23,'nv']])
print(dfl)
print("*********")
print(dfl[0])
print("^^^^^^^^^^^^")
print(dfl[0][1])

data ={
    "60":["狗","猫",'猪'],
    "70":["a","b","c"]
}
frame_data = pd.DataFrame(data)
print(frame_data)

n= pd.read_csv("data1.txt", sep="\t")
print(n)


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值