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的主要内容,如果未能解决你的问题,请参考以下文章