string(7723) "{"docs":[{"id":"158579","text":"\u3010Python\u3011Tkinter\u56fe\u5f62\u754c\u9762\u8bbe\u8ba1\uff08GUI\uff09","intro":"\u76ee\u5f55\n\nECharts\n\u5f02\u6b65\u52a0\u8f7d\n\n\n\nECharts\r\n\u6570\u636e\u53ef\u89c6\u5316\u5728\u8fc7\u53bb\u51e0\u5e74\u4e2d\u53d6\u5f97\u4e86\u5de8\u5927\u8fdb\u5c55\u3002\u5f00\u53d1\u4eba\u5458\u5bf9\u53ef\u89c6\u5316\u4ea7\u54c1\u7684\u671f\u671b\u4e0d\u518d\u662f\u7b80\u5355\u7684\u56fe\u8868\u521b\u5efa\u5de5\u5177\uff0c\u800c\u662f\u5728\u4ea4\u4e92\u3001\u6027\u80fd\u3001\u6570\u636e\u5904\u7406\u7b49\u65b9\u9762\u6709\u66f4\u9ad8\u7684\u8981\u6c42\u3002\r\nchart.setOption({\r\n color: [\r\n ","username":"HGNET","tagsname":"","tagsid":"","catesname":"","catesid":"","createtime":"1641183196","_id":"158579"},{"id":"158620","text":"python\u4e4bgui-tkinter\u53ef\u89c6\u5316\u7f16\u8f91\u754c\u9762 \u81ea\u52a8\u751f\u6210\u4ee3\u7801","intro":"\u76ee\u5f55\n\nECharts\n\u5f02\u6b65\u52a0\u8f7d\n\n\n\nECharts\r\n\u6570\u636e\u53ef\u89c6\u5316\u5728\u8fc7\u53bb\u51e0\u5e74\u4e2d\u53d6\u5f97\u4e86\u5de8\u5927\u8fdb\u5c55\u3002\u5f00\u53d1\u4eba\u5458\u5bf9\u53ef\u89c6\u5316\u4ea7\u54c1\u7684\u671f\u671b\u4e0d\u518d\u662f\u7b80\u5355\u7684\u56fe\u8868\u521b\u5efa\u5de5\u5177\uff0c\u800c\u662f\u5728\u4ea4\u4e92\u3001\u6027\u80fd\u3001\u6570\u636e\u5904\u7406\u7b49\u65b9\u9762\u6709\u66f4\u9ad8\u7684\u8981\u6c42\u3002\r\nchart.setOption({\r\n color: [\r\n ","username":"darkspr","tagsname":"","tagsid":"","catesname":"","catesid":"","createtime":"1641183190","_id":"158620"},{"id":"158603","text":"python3.6 +tkinter GUI\u7f16\u7a0b \u5b9e\u73b0\u754c\u9762\u5316\u7684\u6587\u672c\u5904\u7406\u5de5\u5177","intro":"\u76ee\u5f55\n\nECharts\n\u5f02\u6b65\u52a0\u8f7d\n\n\n\nECharts\r\n\u6570\u636e\u53ef\u89c6\u5316\u5728\u8fc7\u53bb\u51e0\u5e74\u4e2d\u53d6\u5f97\u4e86\u5de8\u5927\u8fdb\u5c55\u3002\u5f00\u53d1\u4eba\u5458\u5bf9\u53ef\u89c6\u5316\u4ea7\u54c1\u7684\u671f\u671b\u4e0d\u518d\u662f\u7b80\u5355\u7684\u56fe\u8868\u521b\u5efa\u5de5\u5177\uff0c\u800c\u662f\u5728\u4ea4\u4e92\u3001\u6027\u80fd\u3001\u6570\u636e\u5904\u7406\u7b49\u65b9\u9762\u6709\u66f4\u9ad8\u7684\u8981\u6c42\u3002\r\nchart.setOption({\r\n color: [\r\n ","username":"chenyuebai","tagsname":"","tagsid":"","catesname":"","catesid":"","createtime":"1641183187","_id":"158603"},{"id":"27850","text":"Python GUI\u4e4btkinter\u7a97\u53e3\u89c6\u7a97\u6559\u7a0b\u5927\u96c6\u5408\uff08\u770b\u8fd9\u7bc7\u5c31\u591f\u4e86\uff09 - \u6d2a\u536b","intro":"\u76ee\u5f55\n\nECharts\n\u5f02\u6b65\u52a0\u8f7d\n\n\n\nECharts\r\n\u6570\u636e\u53ef\u89c6\u5316\u5728\u8fc7\u53bb\u51e0\u5e74\u4e2d\u53d6\u5f97\u4e86\u5de8\u5927\u8fdb\u5c55\u3002\u5f00\u53d1\u4eba\u5458\u5bf9\u53ef\u89c6\u5316\u4ea7\u54c1\u7684\u671f\u671b\u4e0d\u518d\u662f\u7b80\u5355\u7684\u56fe\u8868\u521b\u5efa\u5de5\u5177\uff0c\u800c\u662f\u5728\u4ea4\u4e92\u3001\u6027\u80fd\u3001\u6570\u636e\u5904\u7406\u7b49\u65b9\u9762\u6709\u66f4\u9ad8\u7684\u8981\u6c42\u3002\r\nchart.setOption({\r\n color: [\r\n ","username":"shwee","tagsname":"","tagsid":"","catesname":"","catesid":"","createtime":"1641183186","_id":"27850"},{"id":"158605","text":"Python GUI\u7f16\u7a0b(Tkinter) windows\u754c\u9762\u5f00\u53d1","intro":"\u76ee\u5f55\n\nECharts\n\u5f02\u6b65\u52a0\u8f7d\n\n\n\nECharts\r\n\u6570\u636e\u53ef\u89c6\u5316\u5728\u8fc7\u53bb\u51e0\u5e74\u4e2d\u53d6\u5f97\u4e86\u5de8\u5927\u8fdb\u5c55\u3002\u5f00\u53d1\u4eba\u5458\u5bf9\u53ef\u89c6\u5316\u4ea7\u54c1\u7684\u671f\u671b\u4e0d\u518d\u662f\u7b80\u5355\u7684\u56fe\u8868\u521b\u5efa\u5de5\u5177\uff0c\u800c\u662f\u5728\u4ea4\u4e92\u3001\u6027\u80fd\u3001\u6570\u636e\u5904\u7406\u7b49\u65b9\u9762\u6709\u66f4\u9ad8\u7684\u8981\u6c42\u3002\r\nchart.setOption({\r\n color: [\r\n ","username":"itfat","tagsname":"","tagsid":"","catesname":"","catesid":"","createtime":"1641183184","_id":"158605"},{"id":"28228","text":"tkinter python\uff08\u56fe\u5f62\u5f00\u53d1\u754c\u9762\uff09","intro":"\u76ee\u5f55\n\nECharts\n\u5f02\u6b65\u52a0\u8f7d\n\n\n\nECharts\r\n\u6570\u636e\u53ef\u89c6\u5316\u5728\u8fc7\u53bb\u51e0\u5e74\u4e2d\u53d6\u5f97\u4e86\u5de8\u5927\u8fdb\u5c55\u3002\u5f00\u53d1\u4eba\u5458\u5bf9\u53ef\u89c6\u5316\u4ea7\u54c1\u7684\u671f\u671b\u4e0d\u518d\u662f\u7b80\u5355\u7684\u56fe\u8868\u521b\u5efa\u5de5\u5177\uff0c\u800c\u662f\u5728\u4ea4\u4e92\u3001\u6027\u80fd\u3001\u6570\u636e\u5904\u7406\u7b49\u65b9\u9762\u6709\u66f4\u9ad8\u7684\u8981\u6c42\u3002\r\nchart.setOption({\r\n color: [\r\n ","username":"yudanqu","tagsname":"","tagsid":"","catesname":"","catesid":"","createtime":"1641183159","_id":"28228"},{"id":"158613","text":"Tkinter\u56fe\u5f62\u754c\u9762\u8bbe\u8ba1\uff08GUI\uff09","intro":"\u76ee\u5f55\n\nECharts\n\u5f02\u6b65\u52a0\u8f7d\n\n\n\nECharts\r\n\u6570\u636e\u53ef\u89c6\u5316\u5728\u8fc7\u53bb\u51e0\u5e74\u4e2d\u53d6\u5f97\u4e86\u5de8\u5927\u8fdb\u5c55\u3002\u5f00\u53d1\u4eba\u5458\u5bf9\u53ef\u89c6\u5316\u4ea7\u54c1\u7684\u671f\u671b\u4e0d\u518d\u662f\u7b80\u5355\u7684\u56fe\u8868\u521b\u5efa\u5de5\u5177\uff0c\u800c\u662f\u5728\u4ea4\u4e92\u3001\u6027\u80fd\u3001\u6570\u636e\u5904\u7406\u7b49\u65b9\u9762\u6709\u66f4\u9ad8\u7684\u8981\u6c42\u3002\r\nchart.setOption({\r\n color: [\r\n ","username":"pywjh","tagsname":"","tagsid":"","catesname":"","catesid":"","createtime":"1641183158","_id":"158613"},{"id":"341361","text":"\u91cf\u5316\u5206\u6790\u83b7\u53d6\u6570\u636e\u76843\u79cd\u59ff\u52bf\uff08\u538b\u7bb1\u5e95\u7684\u795e\u5668Tushare\uff09","intro":"\u76ee\u5f55\n\nECharts\n\u5f02\u6b65\u52a0\u8f7d\n\n\n\nECharts\r\n\u6570\u636e\u53ef\u89c6\u5316\u5728\u8fc7\u53bb\u51e0\u5e74\u4e2d\u53d6\u5f97\u4e86\u5de8\u5927\u8fdb\u5c55\u3002\u5f00\u53d1\u4eba\u5458\u5bf9\u53ef\u89c6\u5316\u4ea7\u54c1\u7684\u671f\u671b\u4e0d\u518d\u662f\u7b80\u5355\u7684\u56fe\u8868\u521b\u5efa\u5de5\u5177\uff0c\u800c\u662f\u5728\u4ea4\u4e92\u3001\u6027\u80fd\u3001\u6570\u636e\u5904\u7406\u7b49\u65b9\u9762\u6709\u66f4\u9ad8\u7684\u8981\u6c42\u3002\r\nchart.setOption({\r\n color: [\r\n ","username":"casual","tagsname":"","tagsid":"","catesname":"","catesid":"","createtime":"1641183069","_id":"341361"},{"id":"238879","text":"\u9762\u5411\u4ea4\u6613\u7684\u65e5\u5185\u9ad8\u9891\u91cf\u5316\u4ea4\u6613\u5e73\u53f0\u7b14\u8bb0","intro":"\u76ee\u5f55\n\nECharts\n\u5f02\u6b65\u52a0\u8f7d\n\n\n\nECharts\r\n\u6570\u636e\u53ef\u89c6\u5316\u5728\u8fc7\u53bb\u51e0\u5e74\u4e2d\u53d6\u5f97\u4e86\u5de8\u5927\u8fdb\u5c55\u3002\u5f00\u53d1\u4eba\u5458\u5bf9\u53ef\u89c6\u5316\u4ea7\u54c1\u7684\u671f\u671b\u4e0d\u518d\u662f\u7b80\u5355\u7684\u56fe\u8868\u521b\u5efa\u5de5\u5177\uff0c\u800c\u662f\u5728\u4ea4\u4e92\u3001\u6027\u80fd\u3001\u6570\u636e\u5904\u7406\u7b49\u65b9\u9762\u6709\u66f4\u9ad8\u7684\u8981\u6c42\u3002\r\nchart.setOption({\r\n color: [\r\n ","username":"TaiYangXiManYouZhe","tagsname":"","tagsid":"","catesname":"","catesid":"","createtime":"1641183067","_id":"238879"},{"id":"238890","text":"2021 \u6700\u65b0\u91cf\u5316\u6295\u8d44\u4ea4\u6613\u8d44\u6e90\u6c47\u603b","intro":"\u76ee\u5f55\n\nECharts\n\u5f02\u6b65\u52a0\u8f7d\n\n\n\nECharts\r\n\u6570\u636e\u53ef\u89c6\u5316\u5728\u8fc7\u53bb\u51e0\u5e74\u4e2d\u53d6\u5f97\u4e86\u5de8\u5927\u8fdb\u5c55\u3002\u5f00\u53d1\u4eba\u5458\u5bf9\u53ef\u89c6\u5316\u4ea7\u54c1\u7684\u671f\u671b\u4e0d\u518d\u662f\u7b80\u5355\u7684\u56fe\u8868\u521b\u5efa\u5de5\u5177\uff0c\u800c\u662f\u5728\u4ea4\u4e92\u3001\u6027\u80fd\u3001\u6570\u636e\u5904\u7406\u7b49\u65b9\u9762\u6709\u66f4\u9ad8\u7684\u8981\u6c42\u3002\r\nchart.setOption({\r\n color: [\r\n ","username":"xgqfrms","tagsname":"","tagsid":"","catesname":"","catesid":"","createtime":"1641183063","_id":"238890"}],"count":535118}" array(2) { ["docs"]=> array(10) { [0]=> array(10) { ["id"]=> string(6) "158579" ["text"]=> string(46) "【Python】Tkinter图形界面设计(GUI)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(5) "HGNET" ["tagsname"]=> string(0) "" ["tagsid"]=> string(0) "" ["catesname"]=> string(0) "" ["catesid"]=> string(0) "" ["createtime"]=> string(10) "1641183196" ["_id"]=> string(6) "158579" } [1]=> array(10) { ["id"]=> string(6) "158620" ["text"]=> string(60) "python之gui-tkinter可视化编辑界面 自动生成代码" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "darkspr" ["tagsname"]=> string(0) "" ["tagsid"]=> string(0) "" ["catesname"]=> string(0) "" ["catesid"]=> string(0) "" ["createtime"]=> string(10) "1641183190" ["_id"]=> string(6) "158620" } [2]=> array(10) { ["id"]=> string(6) "158603" ["text"]=> string(66) "python3.6 +tkinter GUI编程 实现界面化的文本处理工具" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(10) "chenyuebai" ["tagsname"]=> string(0) "" ["tagsid"]=> string(0) "" ["catesname"]=> string(0) "" ["catesid"]=> string(0) "" ["createtime"]=> string(10) "1641183187" ["_id"]=> string(6) "158603" } [3]=> array(10) { ["id"]=> string(5) "27850" ["text"]=> string(80) "Python GUI之tkinter窗口视窗教程大集合(看这篇就够了) - 洪卫" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(5) "shwee" ["tagsname"]=> string(0) "" ["tagsid"]=> string(0) "" ["catesname"]=> string(0) "" ["catesid"]=> string(0) "" ["createtime"]=> string(10) "1641183186" ["_id"]=> string(5) "27850" } [4]=> array(10) { ["id"]=> string(6) "158605" ["text"]=> string(45) "Python GUI编程(Tkinter) windows界面开发" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(5) "itfat" ["tagsname"]=> string(0) "" ["tagsid"]=> string(0) "" ["catesname"]=> string(0) "" ["catesid"]=> string(0) "" ["createtime"]=> string(10) "1641183184" ["_id"]=> string(6) "158605" } [5]=> array(10) { ["id"]=> string(5) "28228" ["text"]=> string(39) "tkinter python(图形开发界面)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "yudanqu" ["tagsname"]=> string(0) "" ["tagsid"]=> string(0) "" ["catesname"]=> string(0) "" ["catesid"]=> string(0) "" ["createtime"]=> string(10) "1641183159" ["_id"]=> string(5) "28228" } [6]=> array(10) { ["id"]=> string(6) "158613" ["text"]=> string(34) "Tkinter图形界面设计(GUI)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(5) "pywjh" ["tagsname"]=> string(0) "" ["tagsid"]=> string(0) "" ["catesname"]=> string(0) "" ["catesid"]=> string(0) "" ["createtime"]=> string(10) "1641183158" ["_id"]=> string(6) "158613" } [7]=> array(10) { ["id"]=> string(6) "341361" ["text"]=> string(68) "量化分析获取数据的3种姿势(压箱底的神器Tushare)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(6) "casual" ["tagsname"]=> string(0) "" ["tagsid"]=> string(0) "" ["catesname"]=> string(0) "" ["catesid"]=> string(0) "" ["createtime"]=> string(10) "1641183069" ["_id"]=> string(6) "341361" } [8]=> array(10) { ["id"]=> string(6) "238879" ["text"]=> string(51) "面向交易的日内高频量化交易平台笔记" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(18) "TaiYangXiManYouZhe" ["tagsname"]=> string(0) "" ["tagsid"]=> string(0) "" ["catesname"]=> string(0) "" ["catesid"]=> string(0) "" ["createtime"]=> string(10) "1641183067" ["_id"]=> string(6) "238879" } [9]=> array(10) { ["id"]=> string(6) "238890" ["text"]=> string(41) "2021 最新量化投资交易资源汇总" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "xgqfrms" ["tagsname"]=> string(0) "" ["tagsid"]=> string(0) "" ["catesname"]=> string(0) "" ["catesid"]=> string(0) "" ["createtime"]=> string(10) "1641183063" ["_id"]=> string(6) "238890" } } ["count"]=> int(535118) } 利用python进行数据分析--numpy基础 - 爱码网
xiyouzhi

 

随书练习,第四章  NumPy基础:数组和矢量运算

# coding: utf-8

# In[1]:


# 加注释的三个方法1.用一对"""括起来要注释的代码块。
# 2.用一对\'\'\'括起来要注释的代码块。
# 3.选中要注释的代码,按下ctrl+/注释。
# from numpy import *
import numpy as np


# In[2]:


data=[[0.9526,-0.246,-0.8856],
     [0.5639,0.2379,0.9104]]


# In[3]:


data


# In[4]:


data=np.array(data)  #构造数组,输出结果中加了小括号


# In[5]:


data


# In[6]:


data*10  #利用数组对整块数据进行数学运算


# In[7]:


data+data


# In[8]:


data.shape #数组是一个同构数据多维容器,所有元素必须是相同类型的,shape表示维度大小


# In[9]:


data.dtype  #dtype说明数组数据类型


# In[10]:


# ------array函数:接受一切序列型对象(包括其他数组),产生一个新的数组


# In[11]:


data1 = [6,7.5,8,0,1]


# In[12]:


arr1 = np.array(data1)


# In[13]:


arr1


# In[14]:


data11 = np.array([1,2,3])


# In[15]:


data11


# In[16]:


arr11= np.array(data11)  #接受对象为其他数组


# In[17]:


arr11


# In[18]:


data2 = [[1,2,3,4],[5,6,7,8]]


# In[19]:


arr2 = np.array(data2)


# In[20]:


arr2


# In[21]:


arr2.ndim  #dim是dimension维度的缩写


# In[22]:


arr2.shape


# In[23]:


data22 = [[[1,2,3],[4,5,6]],[[7,8,9],[10,11,12]]]


# In[24]:


arr22 = np.array(data22)


# In[25]:


arr22  #维度为3的数组


# In[26]:


arr22.ndim


# In[27]:


arr22.shape


# In[28]:


arr1.dtype  #np.array自行推断出一个合适的数据类型


# In[29]:


arr2.dtype


# In[30]:


np.zeros(10)


# In[31]:


np.zeros((3,6))


# In[32]:


np.empty((2,3,2))  #返回一些未初始化的垃圾值


# In[33]:


np.arange(15) #arange是python内置函数range的数组版


# In[34]:


np.arange(0,100,10) #创建一个[0,100)范围内步长为10的数组


# In[35]:


#数组常见函数:array,asarray(同上,若输入本身为ndarray,则不复制),arange,ones,ones_like,zeros,zeros_like,empty,empty_like,eye,identity


# In[36]:


np.ones_like(arr2)


# In[37]:


np.ones((2,2,6)) #两层括号,一层表示函数,一层表示形状的list


# In[38]:


np.identity(5) #对角线为1的方形矩阵


# In[39]:


np.eye(5)


# In[40]:


np.eye(5,k=1)


# In[41]:


np.eye(5,4,k=-1)  #可以创建矩形矩阵,k表示偏离对角线的位置


# In[42]:


arr1 = np.array([1,2,3],dtype=np.float64)


# In[43]:


arr2 = np.array([1,2,3],dtype=np.int32)


# In[44]:


arr1.dtype


# In[45]:


arr2.dtype


# In[46]:


#两个特殊的数据类型:string_字符串类型  unicode_固定长度的unicode类型,这两个数据类型表示中有一个小的下划线


# In[47]:


arr3 = np.array([\'a\',\'b\',\'c\'],dtype=np.string_)


# In[48]:


arr3.dtype


# In[49]:


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


# In[50]:


arr.dtype


# In[51]:


float_arr = arr.astype(np.float64)  #astype的用法


# In[52]:


float_arr.dtype


# In[53]:


arr = np.array([3.7,-1.2,-2.6,0.5,12.9,10.1])


# In[54]:


arr


# In[55]:


arr.astype(np.int32)  #结果中小数部分被截断


# In[56]:


arr #但是并未改变原始数据,只是外在表现形式变了


# In[57]:


arr.astype(np.float64)


# In[58]:


numberic_strings = np.array([\'1.25\',\'-9.6\',\'42\'],dtype=np.string_)


# In[59]:


numberic_strings.astype(np.float64) #可以把本身是数字的字符串类型转换为浮点型数字格式的


# In[60]:


int_array = np.arange(10)


# In[61]:


calibers = np.array([.22,.270,.357,.380,.44,.50],dtype=np.float64)


# In[62]:


int_array.astype(calibers.dtype)


# In[63]:


empty_unit32 = np.empty(8,dtype=\'u4\') #可以用简洁的类型代码表示


# In[64]:


empty_unit32


# In[65]:


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


# In[66]:


arr


# In[67]:


arr*arr #大小相等的数组之间应用到元素级


# In[68]:


arr-arr


# In[69]:


1/arr #标量与数组同样传播至元素级


# In[70]:


arr**0.5 #指数运算


# In[71]:


arr = np.arange(10)


# In[72]:


arr


# In[73]:


arr[5]


# In[74]:


arr[5:8]


# In[75]:


arr[5:8]=12  #对切片赋值改变原始数据


# In[76]:


arr


# In[77]:


arr_slice = arr[5:8] #前包含后不包含


# In[78]:


arr_slice[1] = 12345


# In[79]:


arr


# In[80]:


arr_slice[:] = 64


# In[81]:


arr


# In[82]:


arr_slice1 = arr[1:8:2] #起点,终点,步长


# In[83]:


arr_slice1[:] = 3


# In[84]:


arr


# In[85]:


arr2d = np.array([[1,2,3],[4,5,6],[7,8,9]])


# In[86]:


arr2d[2]


# In[87]:


arr2d[0][2]


# In[88]:


arr2d[0,2]


# In[89]:


arr3d = np.array([[[1,2,3],[4,5,6]],[[7,8,9],[10,11,12]]])


# In[90]:


arr3d


# In[91]:


arr3d[0]


# In[92]:


old_values = arr3d[0].copy()


# In[93]:


arr3d[0] = 42


# In[94]:


arr3d


# In[95]:


arr3d[0] = old_values


# In[96]:


arr3d


# In[97]:


arr3d[1,0]


# In[98]:


arr[1:6]


# In[99]:


arr2d


# In[100]:


arr2d[:2]


# In[101]:


arr2d[:2,1:]


# In[102]:


arr2d[1,:2]


# In[103]:


arr2d[2,:1]


# In[104]:


arr2d[:,:1]


# In[105]:


arr2d[:2,1:] = 0


# In[106]:


arr2d


# In[107]:


names = np.array([\'Bob\',\'Joe\',\'Will\',\'Bob\',\'Will\',\'Joe\',\'Joe\'])


# In[108]:


data = np.random.randn(7,4)


# In[109]:


names


# In[110]:


data


# In[111]:


names == \'Bob\'


# In[112]:


data[names == \'Bob\']


# In[113]:


data[names == \'Bob\',2:]


# In[114]:


data[names == \'Bob\',3]


# In[115]:


names != \'Bob\'


# In[116]:


data[names != \'Bob\']


# In[117]:


mask = (names == \'Bob\')|(names == \'Will\') #python关键字and和or在布尔型数组中无效


# In[118]:


mask


# In[119]:


data[mask]


# In[120]:


data[data<0] = 0


# In[121]:


data


# In[122]:


data[names != \'Joe\'] = 7


# In[123]:


data


# In[124]:


arr = np.empty((8,4))


# In[125]:


for i in range(8):
    arr[i] = i


# In[126]:


arr


# In[127]:


arr[[4,3,0,6]]


# In[128]:


arr[[-3,-5,-7]]


# In[129]:


arr = np.arange(32).reshape((8,4))


# In[130]:


arr


# In[131]:


arr[[1,5,7,2],[0,3,1,2]] #结果竟然不是矩阵!!!!!


# In[132]:


arr[[1,5,7,2]][:,[0,3,1,2]] #结果为矩阵


# In[133]:


arr[np.ix_([1,5,7,2],[0,3,1,2])]  #使用函数np.ix_函数


# In[134]:


arr = np.arange(15).reshape((3,5))


# In[135]:


arr


# In[136]:


arr.T #转置


# In[137]:


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


# In[138]:


np.dot(arr.T,arr)


# In[139]:


arr = np.arange(16).reshape((2,2,4))


# In[140]:


arr


# In[141]:


arr.transpose((1,0,2))  #转置,索引(0,1,2)按照(1,0,2)的顺序重新设置


# In[142]:


arr


# In[143]:


arr.swapaxes(1,2)  #y轴和z轴互换


# In[144]:


arr = np.arange(10)


# In[145]:


np.sqrt(arr)  #元素级函数,开方


# In[146]:


np.exp(arr) #指数e的arr次方


# In[147]:


x = np.random.randn(8)


# In[148]:


y = np.random.randn(8)


# In[149]:


x


# In[150]:


y


# In[151]:


np.maximum(x,y) #元素级最大值,相对位置一一比较取较大值


# In[152]:


arr= np.random.randn(7)*5


# In[153]:


arr


# In[154]:


np.modf(arr)  #小数部分和整数部分分离  ,符号均保留


# In[155]:


#一元函数


# In[156]:


np.abs(arr) #取绝对值


# In[157]:


np.fabs(arr) #取绝对值,对于非复数运算速度更快


# In[158]:


np.square(arr) #平方


# In[159]:


np.log(arr)


# In[160]:


np.log10(arr)


# In[161]:


np.log2(arr) 


# In[162]:


np.log1p(arr) #log(1+arr)


# In[163]:


np.sign(arr) #计算各元素的正负号


# In[164]:


np.ceil(arr) #计算各元素的大于等于该值的最小整数


# In[165]:


np.floor(arr) #计算各元素的小于等于该值的最大整数


# In[166]:


np.rint(arr) #将各元素四舍五入到最接近的整数


# In[167]:


np.isnan(arr) #返回一个哪些值是NAN的布尔型数组


# In[168]:


np.isfinite(arr) #返回一个哪些值是有穷的布尔型数组


# In[169]:


np.isinf(arr) #返回一个哪些值是无穷的布尔型数组


# In[170]:


np.cos(arr) #三角函数,其他还有cosh,sin,sinh,tan,tanh;;;;反三角函数:arccos,arccosh,arcsin,arcsinh,arctan,arctanh


# In[171]:


np.logical_not(arr) #计算各元素not x 的真值,非0即为真


# In[172]:


arr


# In[173]:


#二元函数--元素级


# In[174]:


arr1 = np.random.randn(5)


# In[175]:


arr2 = np.random.randn(5)


# In[176]:


arr1


# In[177]:


arr2


# In[178]:


np.add(arr1,arr2)


# In[179]:


np.subtract(arr1,arr2) # 从第一个数组中减去第二个数组中的元素


# In[180]:


np.multiply(arr1,arr2) #数组元素相乘


# In[181]:


np.divide(arr1,arr2) # 除法


# In[182]:


np.floor_divide(arr1,arr2) #除法,丢弃余数


# In[183]:


np.power(arr1,arr2) #arr1的arr2次方


# In[184]:


np.maximum(arr1,arr2)


# In[185]:


np.fmax(arr1,arr2) #同上,元素级最大值,忽略NaN


# In[186]:


np.minimum(arr1,arr2)


# In[187]:


np.fmin(arr1,arr2)


# In[188]:


np.mod(arr1,arr2) #除法的余数


# In[189]:


np.copysign(arr1,arr2) #将第二组的值的符号赋给第一组的值


# In[190]:


np.greater(arr1,arr2) #其他类似还有:greater_equal,less,less_equal,equal,not_equal


# In[191]:


np.logical_and(arr1,arr2) #其他类似还有:logical_or,logical_xor


# In[192]:


points = np.arange(-5,5,0.01) #1000个间隔相等的点


# In[193]:


xs,ys = np.meshgrid(points,points)


# In[194]:


ys


# In[195]:


xs


# In[196]:


import matplotlib.pyplot as plt  #引入绘图模块


# In[197]:


z = np.sqrt(xs**2+ys**2)


# In[198]:


z


# In[199]:


plt.imshow(z,cmap=plt.cm.gray)
plt.colorbar()


# In[200]:


plt.title("Image plot of $\sqrt{x^2 + y^2}$ for a grid of values")


# In[201]:


xarr = np.array([1.1,1.2,1.3,1.4,1.5])


# In[202]:


yarr = np.array([2.1,2.2,2.3,2.4,2.5])


# In[203]:


cond = np.array([True, False, True, True, False])


# In[204]:


result = [(x if c else y)
             for x,y,c in zip(xarr,yarr,cond)]


# In[205]:


result #处理速度慢,无法用于多维数组


# In[206]:


result = np.where(cond,xarr,yarr)


# In[207]:


result


# In[208]:


arr = np.random.randn(4,4)


# In[209]:


arr


# In[210]:


np.where(arr>0,2,-2) #将正值设置为2,负值设置为-2


# In[211]:


np.where(arr>0,2,arr) #只将正值设置为2


# In[212]:


arr = np.random.randn(5,4)


# In[213]:


arr


# In[214]:


arr.mean()  #数学和统计函数


# In[215]:


np.mean(arr)


# In[216]:


arr.sum()


# In[217]:


arr.mean(axis=1)


# In[218]:


arr.sum(0)


# In[219]:


arr = np.array([[0,1,2],[3,4,5],[6,7,8]])


# In[220]:


arr.cumsum(0)  #求累计和


# In[221]:


arr.cumprod(1) #求累计积


# In[222]:


arr.cumsum()


# In[223]:


arr.min(1)


# In[224]:


arr.max()


# In[225]:


arr.argmax() #最大值的索引


# In[226]:


arr.argmax(0)


# In[227]:


arr.std() #标准差


# In[228]:


arr.var() #方差


# In[229]:


arr = np.random.randn(100)


# In[230]:


(arr>0).sum() #正值的数量


# In[231]:


bools = np.array([False,False,True,False])


# In[232]:


bools.any() #测试数组中是否有一个或多个True


# In[233]:


bools.all() #检查数组中是否都是True


# In[234]:


arr = np.random.randn(8)


# In[235]:


arr


# In[236]:


arr.sort()  #改变原数组


# In[237]:


arr


# In[238]:


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


# In[239]:


arr


# In[240]:


arr.sort(1) #在某轴向排序,改变原数组


# In[241]:


arr


# In[242]:


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


# In[243]:


arr


# In[244]:


np.sort(arr,1)  #在某轴向排序,不改变原数组


# In[245]:


arr


# In[246]:


large_arr = np.random.randn(1000)


# In[247]:


large_arr.sort()


# In[248]:


large_arr[int(0.05*len(large_arr))] #5%分位数


# In[249]:


names = np.array([\'Bob\',\'Joe\',\'Will\',\'Bob\',\'Will\',\'Joe\',\'Joe\'])


# In[250]:


np.unique(names) #找出唯一值并排序


# In[251]:


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


# In[252]:


np.unique(ints)


# In[253]:


set(ints)


# In[254]:


values = np.array([6,0,0,3,2,5,6])


# In[255]:


np.in1d(values,[2,3,6]) #测试一个数组中的值在另一个数组中是否存在


# In[256]:


np.intersect1d(values,[2,3,4]) #求交集


# In[257]:


np.union1d(values,[2,3,4]) # 求并集


# In[258]:


np.setdiff1d(values,[2,3,4]) #在前面数组不在后面数组


# In[259]:


np.setxor1d(values,[2,3,4])#存在于一个数组但不同时存在于两个数组


# In[260]:


arr = np.arange(10)


# In[261]:


np.save(\'some_array\',arr)


# In[262]:


arr = arr+1


# In[263]:


arr


# In[264]:


np.load(\'some_array.npy\')


# In[265]:


np.savez(\'array_archive.npz\',a=arr,b=arr)


# In[266]:


arch = np.load(\'array_archive.npz\')


# In[267]:


arch[\'b\']


# In[268]:


get_ipython().system(\'type "C:\\Users\\admin\\Desktop\\array_ex.txt"\')


# In[269]:


#arrs = np.loadtxt(\'C:\Users\admin\Desktop\array_ex.txt\',delimiter=\',\') 出错了


# In[270]:


x = np.array([[1,2,3],[4,5,6]])


# In[271]:


y = np.array([[6,23],[-1,7],[8,9]])


# In[272]:


x


# In[273]:


y


# In[274]:


x.dot(y)#相当于np.dot(x,y)


# In[275]:


np.dot(x,np.ones(3))


# In[276]:


from numpy.linalg import inv,qr


# In[277]:


X = np.random.randn(5,5)


# In[278]:


mat = X.T.dot(X)


# In[279]:


inv(mat) #求逆


# In[280]:


mat.dot(inv(mat))


# In[281]:


q,r = qr(mat) #计算QR分解


# In[282]:


r


# In[283]:


#常用的numpy.linalg函数:det:计算矩阵行列式;eig:计算方阵的本征值和本征向量;solve:解线性方程组;lstsq:最小二乘解


# In[284]:


x = np.arange(9).reshape(3,3)


# In[285]:


x


# In[286]:


y = np.diag(x) #diag函数:返回方阵的对角线元素,或将一维数组转换为方阵


# In[287]:


y


# In[288]:


y = np.diag(y)


# In[289]:


y


# In[290]:


y = np.trace(x) #trace函数:计算对角线元素的和


# In[291]:


y


# In[292]:


#随机数生成


# In[296]:


a = np.random.permutation(np.arange(5)) #permutation返回一个序列的随机排列


# In[297]:


a


# In[299]:


np.random.randint(0,10) #在给定上下限内随机选取整数


# In[300]:


#模拟随机漫步


# In[301]:


nsteps = 1000


# In[308]:


draws = np.random.randint(0,2,size=nsteps)


# In[309]:


steps = np.where(draws > 0,1,-1)


# In[310]:


walk = steps.cumsum()


# In[311]:


walk.min()


# In[312]:


walk.max()


# In[314]:


(np.abs(walk) >= 10).argmax() #argmax第一个最大值的索引,由于整个布尔型数组中只有0,1两个数,1即为最大值


# In[315]:


#一次模拟多个随机漫步:5000个


# In[316]:


nwalks = 5000


# In[317]:


nsteps = 1000


# In[318]:


draws = np.random.randint(0,2,size=(nwalks,nsteps))


# In[319]:


steps = np.where(draws > 0,1,-1)


# In[322]:


walks = steps.cumsum(1)


# In[323]:


walks


# In[324]:


walks.max()


# In[325]:


walks.min()


# In[326]:


hits30 = (np.abs(walks) >= 30).any(1)


# In[327]:


hits30


# In[328]:


hits30.sum()


# In[329]:


crossing_times = (np.abs(walks[hits30]) >= 30).argmax(1)


# In[331]:


crossing_times.mean()

 

分类:

技术点:

相关文章:

  • 2018-05-09
  • 2021-08-13
  • 2021-12-10
  • 2021-11-24
  • 2021-10-07
  • 2018-12-22
  • 2021-08-13
  • 2021-08-15
猜你喜欢
  • 2018-04-30
  • 2020-07-29
  • 2021-08-13
  • 2021-08-30
  • 2020-07-20
  • 2021-08-25
  • 2021-10-17
相关资源
相似解决方案