[Python Cookbook] Numpy: Multiple Ways to Create an Array
Convert from list
Apply np.array() method to convert a list to a numpy array:
import numpy as np
mylist = [1, 2, 3]
x = np.array(mylist)
x
Output: array([1, 2, 3])
Or just pass in a list directly:
y = np.array([4, 5, 6])
y
Output: array([4, 5, 6])
Pass in a list of lists to create a multidimensional array:
m = np.array([[7, 8, 9], [10, 11, 12]])
m
Output:
array([[ 7, 8, 9],
[10, 11, 12]])
Array Generation Functions
arange
returns evenly spaced values within a given interval.
n = np.arange(0, 30, 2) # start at 0 count up by 2, stop before 30
n
Output:
array([ 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28])
reshape
returns an array with the same data with a new shape.
n = n.reshape(3, 5) # reshape array to be 3x5
n
Output:
array([[ 0, 2, 4, 6, 8],
[10, 12, 14, 16, 18],
[20, 22, 24, 26, 28]])
linspace
returns evenly spaced numbers over a specified interval.
o = np.linspace(0, 4, 9) # return 9 evenly spaced values from 0 to 4
o
Output:
array([0. , 0.5, 1. , 1.5, 2. , 2.5, 3. , 3.5, 4. ])
resize
changes the shape and size of array in-place.
o.resize(3, 3)
o
Output:
array([[0. , 0.5, 1. ],
[1.5, 2. , 2.5],
[3. , 3.5, 4. ]])
ones
returns a new array of given shape and type, filled with ones.
np.ones((3, 2))
Output:
array([[1., 1.],
[1., 1.],
[1., 1.]])
zeros
returns a new array of given shape and type, filled with zeros.
np.zeros((2, 3))
Output:
array([[0., 0., 0.],
[0., 0., 0.]])
eye
returns a 2-D array with ones on the diagonal and zeros elsewhere.
np.eye(3)
Output:
array([[1., 0., 0.],
[0., 1., 0.],
[0., 0., 1.]])
diag
extracts a diagonal or constructs a diagonal array.
np.diag(y)
Output:
array([[4, 0, 0],
[0, 5, 0],
[0, 0, 6]])
Create an array using repeating list (or see np.tile
)
np.array([1, 2, 3] * 3)
Output:
array([1, 2, 3, 1, 2, 3, 1, 2, 3])
Repeat elements of an array using repeat
.
np.repeat([1, 2, 3], 3)
Output:
array([1, 1, 1, 2, 2, 2, 3, 3, 3])
Random Number Generator
The numpy.random subclass provides many methods for random sampling. The following tabels list funtions in the module to generate random numbers.
Simple random data
Now I will summarize the usage of the first three funtions which I have met frequently.
numpy.random.rand creates an array of the given shape and populate it with random samples from a uniform distribution over [0, 1)
. Parameters d0, d1, ..., dn define dimentions of returned array.
np.random.rand(2,3)
Output:
array([[0.20544659, 0.23520889, 0.11680902],
[0.56246922, 0.60270525, 0.75224416]])
numpy.random.randn creates an array of the given shape and populate it with random samples from a strandard normal distribution N(0,1). If any of the are floats, they are first converted to integers by truncation. A single float randomly sampled from the distribution is returned if no argument is provided.
# single random variable
print(np.random.randn(),'\n')
# N(0,1)
print(np.random.randn(2, 4),'\n')
# N(3,6.26)
print(2.5 * np.random.randn(2, 4) + 3,'\n')
Output:
-1.613647405772221
[[ 1.13147436 0.19641141 -0.62034454 0.61118876]
[ 0.95742223 1.91138142 0.2736291 0.29787331]]
[[ 1.997092 2.6460653 3.2408004 -0.81586404]
[ 0.15120766 1.23676426 6.59249789 -1.04078213]]
numpy. random.randint returns random integers from the “discrete uniform” distribution of the specified dtype in the interval [low, high). If high is None (the default), then results are from [0, low). The specific format is
numpy.random.
randint
(low, high=None, size=None, dtype='l')
np.random.seed(10)
np.random.randint(100,200,(3,4))
np.random.randint(100,200)
Output:
array([[109, 115, 164, 128],
[189, 193, 129, 108],
[173, 100, 140, 136]])
109
Permutation
There are another two funtions used for permutations. Both of them can randomly permute an array. The only difference is that shuffle changes the original array but permutation doesn't.
Here are some examples of permutation.
np.random.permutation([1, 4, 9, 12, 15])
Output: array([ 9, 4, 1, 12, 15])
np.random.permutation(10)
Output: array([3, 7, 4, 6, 8, 2, 1, 5, 0, 9])
Usually, we use the following statements to perform random sampling:
permutation = list(np.random.permutation(m)) #m is the number of samples
shuffled_X = X[:, permutation]
shuffled_Y = Y[:, permutation].reshape((1,m))
[Python Cookbook] Numpy: Multiple Ways to Create an Array的更多相关文章
- 「Python」Numpy equivalent of MATLAB's cell array
转自Stackoverflow.备忘用. Question I want to create a MATLAB-like cell array in Numpy. How can I accompli ...
- [Python Cookbook] Numpy Array Slicing and Indexing
1-D Array Indexing Use bracket notation [ ] to get the value at a specific index. Remember that inde ...
- [Python Cookbook] Numpy: Iterating Over Arrays
1. Using for-loop Iterate along row axis: import numpy as np x=np.array([[1,2,3],[4,5,6]]) for i in ...
- [Python Cookbook] Numpy Array Joint Methods: Append, Extend & Concatenate
数组拼接方法一 思路:首先将数组转成列表,然后利用列表的拼接函数append().extend()等进行拼接处理,最后将列表转成数组. 示例1: import numpy as np a=np.arr ...
- [Python Cookbook] Numpy: How to Apply a Function to 1D Slices along the Given Axis
Here is a function in Numpy module which could apply a function to 1D slices along the Given Axis. I ...
- [Python Cookbook] Pandas: 3 Ways to define a DataFrame
Using Series (Row-Wise) import pandas as pd purchase_1 = pd.Series({'Name': 'Chris', 'Item Purchased ...
- [Python Cookbook] Numpy Array Manipulation
1. Reshape: The np.reshape() method will give a new shape to an array without changing its data. Not ...
- [转]python与numpy基础
来源于:https://github.com/HanXiaoyang/python-and-numpy-tutorial/blob/master/python-numpy-tutorial.ipynb ...
- 【Python】numpy 数组拼接、分割
摘自https://docs.scipy.org 1.The Basics 1.1 numpy 数组基础 NumPy’s array class is called ndarray. ndarray. ...
随机推荐
- Maya
建立酒杯的方法(CV曲线) surface(曲面)-- creat cv curve tool-- control vertex(调整图形)[再次creat cv建立厚度,只需要建立酒杯的上口]--- ...
- TCP/IP网络编程之套接字与标准I/O
标准I/O函数 标准标准I/O函数有两个优点: 标准I/O函数具有良好的移植性 标准I/O函数可以利用缓冲提高性能 关于移植性无需过多解释,不仅是I/O函数,所有标准函数都具有良好的移植性.因为,为了 ...
- itchat 动态注册
动态注册时可以选择将itchat.run()放入另一线程或使用configured_reply()方法处理消息. 两种方法分别是: # 使用另一线程,但注意不要让程序运行终止 import threa ...
- Nodejs-模块化结构
1.模块(一个文件就是一个模块) 获取当前脚本所在的路径 _ _dirname 文件路径 _ _filename (1)创建模块(module1.js) const fs=require('fs'); ...
- Flask 中蓝图的两种表现形式
最近在学Flask,特有的@X.route 很适合RESTfuld API, 一般小型应用,在一个py文件中就可以完成,但是维护起来比较麻烦. 想体验Django那样的MVT模式, 看到 Flask提 ...
- 设计模式之第17章-备忘录模式(Java实现)
设计模式之第17章-备忘录模式(Java实现) 好男人就是我,我就是曾小贤.最近陈赫和张子萱事件闹得那是一个沸沸扬扬.想想曾经每年都有爱情公寓陪伴的我现如今过年没有了爱情公寓总是感觉缺少点什么.不知道 ...
- Selenium-java 中 对于下拉框 对于网页上的下拉框 如何定位
WebElement e1 = driver.findElement(By.cssSelector("#s_province")); Select se1 = new Select ...
- 查看 wordpress 版本以及如何隐藏版本号
查看 wordpress 版本 进入后台“仪表盘”,该页面的左上角图片显示了wordpress的版本号. 查看网页源代码在网站的主页空白处点右键弹出菜单,选择“查看网页源代码”.在出现的源码页面里查找 ...
- 什么是虚假唤醒 spurious wakeup
解释一下什么是虚假唤醒? 说具体的例子,比较容易说通. pthread_mutex_t lock; pthread_cond_t notempty; pthread_cond_t notfull; v ...
- PDF文件加密怎么转换成word
1.将文档拖入Chrome浏览器 2. 3.右上角打印,然后会提示 另存为本地,然后再用word或者福昕套件转换就行