Issue 1:
Sorry in advance if this is a duplicate. As of numpy 1.12.1, an error is raised by genfromtxt() when using names=True with comments=None. Tested with:

Python 2.7.14 |Anaconda custom (64-bit)| (default, Oct 16 2017, 17:29:19)

numpy 1.12.1

Linux rsiverd-linux.lco.gtn 3.10.0-693.5.2.el7.x86_64 #1 SMP Fri Oct 20 20:32:50 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

...............................................................................................................

Instructions to reproduce (using attached sample file 'asdf.txt'):

data = np.genfromtxt('asdf.txt', dtype=None, comments=None, delimiter='|', names=True)

asdf.txt

...............................................................................................................

Expected result:

Successful loading of the data file (no error).

...............................................................................................................

Actual result:

TypeError Traceback (most recent call last)
<ipython-input-1-1d47ac60e22b> in <module>()
----> 1 data = np.genfromtxt('asdf.txt', dtype=None, comments=None, delimiter='|', names=True)

/home/rsiverd/anaconda2/lib/python2.7/site-packages/numpy/lib/npyio.pyc in genfromtxt(fname, dtype, comments, delimiter, skip_header, skip_footer, converters, missing_values, filling_values, usecols, names, excludelist, deletechars, replace_space, autostrip, case_sensitive, defaultfmt, unpack, usemask, loose, invalid_raise, max_rows)
1536 first_line = next(fhd)
1537 if names is True:
-> 1538 if comments in first_line:
1539 first_line = (
1540 asbytes('').join(first_line.split(comments)[1:]))

TypeError: 'in <string>' requires string as left operand, not NoneType

...............................................................................................................

Suggested remedy:

It looks like the check for the first valid values does not check whether comments is None before looking for the comment string in the first line, raising this error. I suspect this is easily fixed by replacing

while not first_values:
first_line = next(fhd)
if names is True:
if comments in first_line:
first_line = (
asbytes('').join(first_line.split(comments)[1:]))
first_values = split_line(first_line)

with

while not first_values:
first_line = next(fhd)
if (names is True) and (comments is not None):
if comments in first_line:
first_line = (
asbytes('').join(first_line.split(comments)[1:]))
first_values = split_line(first_line)

Issue 2:
Documentation

Now that https://numpy.org/numpy-tutorials/ is deployed, we need to decide how to organize our internal documentation.

Currently, this page is also called NumPy Tutorials. The two tutorials listed there are also available as Jupyter Notebooks from the separate numpy-tutorials repo.

In our docs team meetings, we have discussed two possibilities:

Keeping two sets of tutorials. This would allow us to separate the contents into in-depth guides about NumPy features (in the main sphinx docs) and general tutorials with applications of NumPy in other domains (in the numpy-tutorials repo). In this case, the tutorials section in the main docs would have to be renamed; one suggestion is "NumPy Guides" or similar.

Only keeping the numpy-tutorials repo, making the sphinx tutorials page point to the rendered numpy-tutorials site and adding any new content there.

It would be nice to have further input from the community so we can reach a solution. If you have other ideas, please feel free to let us know!

cc @rossbar @rgommers @cooperrc @8bitmp3