数组[关系表达式]:关系表达式的值是一个布尔型数组,其中为True的元素对应于数组中满足关系表达式元素
        以上下标运算的值就是数组中对应布尔数组中为True的元素相对应
        np.where(关系表达式):数组中满足关系表达式的元素的下标数组
        np.take(目标数组,下标数组):数组中由下标数组所标识的元素集合

 

 

上课时的笔记,觉得很有用处,怕忘记mark一下,代码就是求一个股票按照每个工作日求平均值,使用了上述方法从一堆数据中选出了每个工作日分别的值求算数平均值,应该不难理解

import numpy as np
import datetime as dt


def dmy2wday(dmy):
    dmy = str(dmy, encoding='utf-8')
    date = dt.datetime.strptime(dmy, '%d-%m-%Y').date()
    wday = date.weekday()  # 0-6表示周一到周日
    return wday


wdays, closing_prices = np.loadtxt(
    '..\DS+ML\DS\data\\aapl.csv', delimiter=',', usecols=(1, 6), unpack=True, converters={1: dmy2wday})
ave_closing_prices = np.zeros(5)
for wday in range(ave_closing_prices.size):
    # ave_closing_prices[wday] = closing_prices[wdays == wday].mean()
    # ave_closing_prices[wday] = closing_prices[np.where(wdays == wday)].mean()
    ave_closing_prices[wday] = np.take(closing_prices, np.where(wdays == wday)).mean()
for wday, ave_closing_price in zip(['MON', 'TUS', 'WED', 'THU', 'FRI'], ave_closing_prices):
    print(wday, ave_closing_price)