Jupyter&numpy

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jupyter&numpy相关的知识,希望对你有一定的参考价值。

参考技术A 几个基本操作:

Linux指令:

• Enter: 转入编辑模式(或者鼠标双击)

• Ctrl + Enter: 运行本单元,选中本单元

• Alt + Enter: 运行本单元,在下面插入一单元

• Shift + Enter : 运行本单元,选中下个单元

导入numpy库

查看numpy版本

使用np.random.randint创建ndarray 演示 ndarray 输出效果 以及 和 list 的区别

机器学习部分的函数太多,参数太复杂,这里建议把关键字参数都加上,可读性好

参数为列表: np.array([1,2,3])

注意:

包含以下常见创建方法:

功能:按照指定形状创建多维数组,并用1填充

参数:

返回值:返沪创建好的多维数组数组

功能类似np.zeros只不过不是用1填充 而是用0填充

从start,到end,每隔step取一个值,放入一个数组

从low到high的范围随机取整数,填充多维数组 size用于指定数组的形状 如 2 (2,3)

传入几个参数,就创建几维数组

产生以0为中心 方差为1 的 标准正太分布 的随机数 填充数组

如 np.random.randn(2,3,3) 产生一个三维数组 数组中有两个数组 两个数组中分别有三个数组 三个数组中每个都有三个元素

np.random.randn是标准正态分布(以0为中心,方差是1) normal是可以指定中心和方差的一般正态分布

loc 正态分别的中心

scale 正态分布的变化范围

size 数组的形状 如 2 (2,3)

size指定多维数组的形状 如 2 或者 (2,3)

函数随机生成0到1的随机数 [0,1) 填充数组

4个必记参数:

ndim:维度

shape:形状(各维度的长度)

size:总长度

dtype:元素类型

练习:使用随机数生成一张图片并用pyplot绘制

Python:安装了 Anaconda,但无法在 Jupyter 笔记本中导入 numpy 或 matplotlib

【中文标题】Python:安装了 Anaconda,但无法在 Jupyter 笔记本中导入 numpy 或 matplotlib【英文标题】:Python: Installed Anaconda, but can't import numpy or matplotlib in Jupyter notebook 【发布时间】:2016-10-11 16:15:11 【问题描述】:

我是 Python 新手,所以也许有一个简单的解决方案。我安装了 Anaconda 并认为一切都很简单,但即使 Jupyter 工作正常,我也无法将 numpy 和 matplotlib 导入我的笔记本。相反,我得到了这个错误:

---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-1-1e0540761e0c> in <module>()
----> 1 import matplotlib.pyplot as plt
      2 vals = [1, 2, 3, 4]
      3 plt.plot(vals)

//anaconda/lib/python3.5/site-packages/matplotlib/__init__.py in <module>()
    120 # cbook must import matplotlib only within function
    121 # definitions, so it is safe to import from it here.
--> 122 from matplotlib.cbook import is_string_like, mplDeprecation, dedent, get_label
    123 from matplotlib.compat import subprocess
    124 from matplotlib.rcsetup import (defaultParams,

//anaconda/lib/python3.5/site-packages/matplotlib/cbook.py in <module>()
     31 from weakref import ref, WeakKeyDictionary
     32 
---> 33 import numpy as np
     34 import numpy.ma as ma
     35 

//anaconda/lib/python3.5/site-packages/numpy/__init__.py in <module>()
    144         return loader(*packages, **options)
    145 
--> 146     from . import add_newdocs
    147     __all__ = ['add_newdocs',
    148                'ModuleDeprecationWarning',

//anaconda/lib/python3.5/site-packages/numpy/add_newdocs.py in <module>()
     11 from __future__ import division, absolute_import, print_function
     12 
---> 13 from numpy.lib import add_newdoc
     14 
     15 ###############################################################################

//anaconda/lib/python3.5/site-packages/numpy/lib/__init__.py in <module>()
      6 from numpy.version import version as __version__
      7 
----> 8 from .type_check import *
      9 from .index_tricks import *
     10 from .function_base import *

//anaconda/lib/python3.5/site-packages/numpy/lib/type_check.py in <module>()
      9            'common_type']
     10 
---> 11 import numpy.core.numeric as _nx
     12 from numpy.core.numeric import asarray, asanyarray, array, isnan, \
     13                 obj2sctype, zeros

//anaconda/lib/python3.5/site-packages/numpy/core/__init__.py in <module>()
     12         os.environ[envkey] = '1'
     13         env_added.append(envkey)
---> 14 from . import multiarray
     15 for envkey in env_added:
     16     del os.environ[envkey]

ImportError: dlopen(//anaconda/lib/python3.5/site-packages/numpy/core/multiarray.so, 10): Symbol not found: _strnlen
  Referenced from: /anaconda/lib/python3.5/site-packages/numpy/core/../../../..//libmkl_intel_lp64.dylib
  Expected in: flat namespace
 in /anaconda/lib/python3.5/site-packages/numpy/core/../../../..//libmkl_intel_lp64.dylib

由于这两个包都出现在$ conda list 中,它可能存在某种链接错误(?),但不幸的是,初学者很难自己解决这个问题。任何人都可以帮忙吗?

【问题讨论】:

乍一看,这似乎是您安装的一个严重问题,因为该错误涉及一些与 NumPy 内部结构有关的 .dylib (DYnamic LIBrary) 文件,而不是您的代码。跨度> @ForceBru 除了下载和安装 Anaconda、打开 Jupyter 笔记本并运行一些简单的脚本之外,我什么也没做。 我明白了,但这对我来说仍然是一个非常奇怪的错误,因为它抱怨缺少 _strnlen C 标准库符号这一事实,而且这个符号有点标准,应该存在,但它不是... 我在一个相当旧的系统(OS X 10.6.8)上,但我有 Python 3.5 并且所有软件包都安装得很好并且是最新的。 @ForceBru 看来_strnlen确实在10.6.8中缺失了,见here和here。有没有办法手动添加?如果我因此而无法使用 SciPy,那将是非常令人沮丧的。 【参考方案1】:

问题的关键可能是您运行的是相当旧的 Mac OS X 版本,因为 _strnlen 甚至不可用 until 10.7 release。

Anaconda 至少是为 OS X 10.7 构建的(根据this),因此您可能在这里运气不佳,可能的解决方案是升级系统。

【讨论】:

【参考方案2】:

好的,如果我正确理解你的意思,我建议你将包添加到你的 python 文件所在的同一文件夹中。如果可能的话,添加你用来导入数据的代码,这样我就可以找到任何可能的错误

【讨论】:

错误信息开头引用的代码。 好的,你试过我提到的吗?问题是您的问题无法找到该包,因此您会收到错误 Expected in: flat namespace in /anaconda/lib/python3.5/site-packages/numpy/core/../../../ ..//libmkl_intel_lp64.dylib 如果我最初提到的内容不起作用,请尝试在文件夹 packages 中的 python 3.5 文件夹中添加您的包 @LamprosTzanetos 我尝试将numpy-1.11.2-py35_0 文件夹复制到项目目录,但给出了相同的错误消息。 我过去也遇到过类似的问题。您必须找到包文件夹而不是项目目录。如果找不到,请将程序文件和包添加到新文件夹中,然后再次尝试运行程序。

以上是关于Jupyter&numpy的主要内容,如果未能解决你的问题,请参考以下文章

服务器后台挂起jupyter

龙叔python-Jupyter(在线运行代码&文档管理)

后台运行jupyter notebook

Minconda使用.bat快速访问jupyter notebook

如何码头化 Jupyter 实验室

安装 Jupyter notebook extensions